Подключение к Firebird, встроенному в D2010
-
21-09-2019 - |
Вопрос
Я скачал драйвер Firebird DBX с http://sites.google.com/site/dbxfirebird/ и я смог скомпилировать проект "Тестовое подключение" и запустить его.Я указал на это в своей тестовой базе данных следующим образом:
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 (Firebird embedded driver DLL, переименованный в fbclient), все его зависимости и файл dbxdrivers.ini в ту же папку, в которой запущен EXE-файл проекта.Я не вижу никаких причин, по которым это не должно сработать, но призыв к .Открыть не удается с помощью:
Проект Project1.exe вызвал исключение класс TDBXError с сообщением "Неизвестный драйвер:Связь с жар-птицей".
Опять же, это относится к вызову на открытие.Присвоение имени драйвера работает просто отлично.Кто-нибудь сталкивался с этой проблемой раньше?Почему в тестовом проекте работает точно такой же код, но не другой, и есть ли какой-нибудь способ это исправить?
Решение
Я нашел проблему.Класс загрузки для настройки драйвера базы данных должен был быть зарегистрирован в инициализация раздел DBXDynalink.pas.Тестовый проект включал DBXDynalink в свой использование пункт, в котором моего не было.Я вставил это, и теперь это работает.
Другие советы
Эта ошибка обычно возникает, когда вы не добавляете соответствующий модуль драйвера DBX в свой список использования.Попробуйте добавить DBXFirebird в свой список использований.
Просто измените C.Имя драйвера:= 'FirebirdConnection';кому C.Имя драйвера:= 'Firebird';
и будет работать!