http://sites.google.com/site/dbxfirebird/から Firebird DBX ドライバーをダウンロードし、「Test Connection」プロジェクトをコンパイルして実行することができました。次のようにテストDBに向けました:
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 組み込みドライバー DLL、名前を fbclient に変更)、そのすべての依存関係、および dbxdrivers.ini ファイルを、プロジェクトの EXE が実行されているフォルダーと同じフォルダーにコピーしました。理由がわかりません。これは機能しないはずですが、.Open の呼び出しは次のように失敗します。
プロジェクト Project1.exe で例外クラス TDBXError が発生し、「不明なドライバー: FirebirdConnection」というメッセージが表示されました。
繰り返しますが、これは Open の呼び出しにあります。DriverName への割り当ては問題なく機能します。誰もこの問題を見たことがありますか?テストプロジェクトではまったく同じコードが機能するのに、別のプロジェクトでは機能しないのはなぜですか?それを修正する方法はありますか?