昨天在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) |