Frage

Ich habe die Firebird DBX-Treiber von http://sites.google.com/site/dbxfirebird / und ich habe das „Test Connection“ Projekt kompilieren und zu laufen bekommen kann. Ich zeigte es meinen Test DB wie folgt:

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;

Wenn ich es laufen, es funktioniert gut. Aber wenn ich den exakt gleichen Code in einem anderen Projekt setzen, funktioniert es nicht. Ich habe die fbclient.dll (Firebird Embedded-Treiber-DLL, umbenannt fbclient), alle seine Abhängigkeiten und die dbxdrivers.ini Datei in denselben Ordner wie die EXE-Projekt kopiert läuft in. Ich keinen Grund sehen, warum dies sollte nicht Arbeit, sondern der Aufruf von .Open schlägt mit:

  

Projekt Projekt1.exe angehoben Ausnahme   Klasse TDBXError mit der Meldung ‚Unknown   Fahrer: FirebirdConnection‘

.

Auch dies ist auf den Anruf zu öffnen. Die Zuordnung zu Driver funktioniert gut. Hat jemand dieses Problem gesehen vor? Warum funktioniert die exakt gleiche Code Arbeit im Testprojekt aber nicht einen anderen, und ist es eine Möglichkeit, es beheben?

War es hilfreich?

Lösung

Ich fand das Problem. Eine Belastungsklasse der Datenbanktreiber werden mußten registriert in der Initialisierung von DBXDynalink.pas einzurichten. Das Testprojekt enthalten DBXDynalink in seiner Anwendungen Klausel, wo Mine nicht. Ich habe, dass in und jetzt funktioniert es.

Andere Tipps

Dieser Fehler tritt in der Regel, wenn Sie fügen Sie nicht die entsprechende DBX-Treibereinheit zu Ihrer uses-Liste. Versuchen Sie, DBXFirebird zu Ihrer uses-Liste.

Just Änderung C.DriverName: = 'FirebirdConnection'; zu C.DriverName: = 'Firebird';

und funktioniert!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top