FireDAC TFDConnection.GetTableNames не работает на Firebird с проверенной аутентификацией

Я соединяю свою базу данных Firebird с FireDAC (переход с FIBPlus и использование XE8 update 1). Я использую доверенную аутентификацию (OSAutenth=True). Мне нужно прочитать список таблиц в базе данных. Я использую TFDConnection.GetTableNames, и он хорошо работает со стандартной аутентификацией (имя пользователя + пароль), но я не способен заставить его работать с использованием доверенной аутентификации. Возможно, я делаю что-то не так или использую неправильный метод для получения такой информации. Это то, что я делаю:

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, который я собираюсь заменить, прекрасно работает с обоими типами аутентификаций.

Любая идея?

1 ответ

Измените вашу команду следующим образом:

FDConnection1.GetTableNames('','','',Memo1.Lines,[osMy],[tkTable],true);
Другие вопросы по тегам