Я скачал драйвер Firebird DBX из http://sites.google.com/site/dbxfirebird/ и смог скомпилировать проект «Test Connection» и запустить его. Я указал на мою тестовую базу данных так:
procedure TMainForm.Button1Click(Sender: TObject);
var C: TSQLConnection;
begin
C := TSQLConnection.Create(Self);
try
C.DriverName := 'FirebirdConnection';
C.Params.Add('User_Name=SYSDBA');
C.Params.Add('Password=masterkey');
C.Params.Add('Database=C:\fbtest\test.fdb');
C.Open;
if C.Connected then
ShowMessage('Connection is active')
finally
C.Free;
end;
end;
Когда я запускаю, все работает нормально. Но когда я помещаю точно такой же код в другой проект, он не работает. Я скопировал fbclient.dll (DLL-файл встроенного драйвера Firebird, переименован в fbclient), все его зависимости и файл dbxdrivers.ini в ту же папку, в которой выполняется EXE-файл проекта. Я не вижу причин, почему это не должно работать, но вызов .Open завершается неудачно с:
Project Project1.exe поднял исключение
Класс TDBXError с сообщением 'Unknown
драйвер: FirebirdConnection '.
Опять же, это по вызову Open. Назначение DriverName работает просто отлично. Кто-нибудь видел эту проблему раньше? Почему в тестовом проекте работает точно такой же код, а не другой, и есть ли способ, как это исправить?