我正在使用FireDAC连接我的火鸟数据库(从FIBPlus迁移并使用XE8更新1)。我使用的是可信身份验证(OSAutenth=True)。我需要读取数据库中的表列表。我正在使用TFDConnection.GetTableNames,它与标准身份验证(username+password)一起工作得很好,但我无法使用可信身份验证让它工作。也许我做错了什么,或者我使用了错误的方法来获取这种信息。这就是我要做的:
var
oDef : IFDStanConnectionDef;
oPars: TFDPhysFBConnectionDefParams;
begin
oDef:=FDManager.ConnectionDefs.AddConnectionDef;
oDef.Name:='MyFirebird';
oPars:=TFDPhysFBConnectionDefParams(oDef.Params);
oPars.DriverID:='FB';
oPars.Protocol:=ipTCPIP;
oPars.Server:=edServer.Text;
oPars.SQLDialect:=3;
oPars.Database:=edDataBase.Text;
oPars.OSAuthent:=(edPassword.Text='');
oPars.UserName:='SYSDBA';
oPars.Password:=edPassword.Text;
oPars.RoleName:=edRole.Text;
oPars.OpenMode:=omOpen;
FDPhysFBDriverLink1.Embedded:=False;
FDPhysFBDriverLink1.VendorLib:='c:\MyProgram\fbclient.dll';
FDConnection1.ConnectionDefName:='MyFirebird';
FDConnection1.Connected:=TRUE;
FDConnection1.GetTableNames('','','',Memo1.Lines,[osMy],[tkTable]); '<--- doesn't works with os authentication
FDQuery1.SQL.Text:='select * from MYTABLE';
FDQuery1.Active:=TRUE; '<--- works fine in both kind of authentication我将要替换的FIBPlus TpFIBDatabase.GetTableNames对于这两种身份验证都可以很好地工作。
有什么想法吗?
发布于 2016-11-23 15:48:10
按如下方式更改您的命令:
FDConnection1.GetTableNames('','','',Memo1.Lines,[osMy],[tkTable],true);https://stackoverflow.com/questions/31289090
复制相似问题