Domanda

Ho scaricato il driver Firebird DBX da http://sites.google.com/site/dbxfirebird / e sono stato in grado di compilare il progetto "test di connessione" e farlo funzionare. Ho fatto al mio test di DB in questo modo:

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;

Quando l'eseguo, funziona benissimo. Ma quando ho messo lo stesso codice esatto in un progetto diverso, non funziona. Ho copiato il fbclient.dll (driver DLL Firebird incorporato, rinominato fbclient), tutte le sue dipendenze, e il file dbxdrivers.ini nella stessa cartella come EXE del progetto è in esecuzione in. Non vedo alcuna ragione per cui questo non dovrebbe funzionare, ma la chiamata alla .Open non riesce con:

  

Progetto progetto1.exe sollevato un'eccezione   Classe TDBXError con il messaggio 'Unknown   autista:. FirebirdConnection'

Ancora una volta, questa è la chiamata a Open. L'assegnazione a DriverName funziona bene. Qualcuno ha visto questo problema prima? Perché lo stesso identico lavoro codice nel progetto di prova, ma non uno diverso, e c'è un modo per risolvere il problema?

È stato utile?

Soluzione

Ho trovato il problema. Una classe di carico per impostare il driver di database doveva essere registrata nel di inizializzazione di DBXDynalink.pas. Il progetto di test incluso DBXDynalink nel suo usi clausola, in cui il mio non ha fatto. Ho messo dentro e ora funziona.

Altri suggerimenti

Questo errore si verifica in genere quando non si aggiunge il rispettivo driver da DBX alla tua lista usi. Prova ad aggiungere alla tua lista DBXFirebird usi.

cambiare solo C.DriverName: = 'FirebirdConnection'; per C.DriverName: = 'Firebird';

e funziona!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top