Chinaunix首页 | 论坛 | 博客
  • 博客访问: 335695
  • 博文数量: 20
  • 博客积分: 5010
  • 博客等级: 大校
  • 技术积分: 680
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-03 08:02
文章存档

2013年(9)

2009年(6)

2008年(5)

我的朋友

分类:

2008-05-13 13:16:08

昨天在firebird群里诱人说unidac不能连接fb的embed版,我当时一惊,赶紧看文档结果也没有发现,当时觉得如果,ibdac能支持embed版本,那么估计unidac也能支持,就将做了一个demo,发现完全可以连接到fb的embed版本,代码如下。

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, DB, DBAccess, Uni, MemDS, UniProvider,
  InterBaseUniProvider;

type
  TForm1 = class(TForm)
    UniConnTest: TUniConnection;//用于数据库的连接
    InterBaseUniProTest: TInterBaseUniProvider;//ib/FB的数据提供
    UniQryTest: TUniQuery;
    UniDataSrTest: TUniDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  with UniConnTest do
  begin
    ProviderName := 'interbase';//这里确定为interbase 但是可以支持firebird
    Password := 'masterkey';//数据库密码
    Username := 'sysdba';//数据库密码
    Server := '';
    Database := 'TD_HOUSE.FDB';//数据库文件的位置,这里在当前目录
    SpecificOptions.Clear;
    SpecificOptions.Add('InterBase.ClientLibrary=fbembed.dll');//设置embeddll驱动位置
    SpecificOptions.Add('InterBase.CharLength=0');//设置为0让,unidac自动读取fb设置
    SpecificOptions.Add('SQLDialet=3');//设置为3
    SpecificOptions.Add('USEUnicode=true');//迟滞unicode 有人说有问题 我没有发现
    try
      Connect;
      ShowMessage('OK');
    except
      ShowMessage('eer');
    end;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  UniQryTest.Close;
  UniQryTest.SQL.Text := 'select * from TB_SYS_LOG';
  // UniQryTest.FetchingAll;
  UniQryTest.DisableControls;
  UniQryTest.Open;
  UniQryTest.EnableControls;
end;

end.

阅读(5462) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~