Ich würde erst mal sicherstellen, dass immer die korrekte Firebird -
DLL geladen wird.
Du hast ja IBO.
In die
DPR:
Delphi-Quellcode:
begin
IB_Session.IB_GetClientLibNameFunc := GetFBClientLibName;
//
Application.Initialize;
if not Connection.Login
then
begin
Application.ProcessMessages;
// ohne = Exception
Application.Terminate;
end;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TfrmMain, frmMain);
Application.Run;
end.
und noch die Funktion:
Delphi-Quellcode:
function GetFBClientLibName(aINIFIle: string = ''): string;
begin
Result := ExtractFilePath(Application.ExeName) + SFBClientFileName;
end;
Dann kannst du die
DLL ins Verzeichnis der EXE packen und es passt immer.
Zum Fehler beim Beenden.
Es ist immer eine gute Idee, Zugriffe auf die Connection beim Beenden (DisConnect) möglichst nicht in OnDestroy oder so zu packen.
Allenfalls BeforeDestruction überschreiben und dort rein (und inherited nach deinem Code). Für micht sieht es so aus, als ob bei deinem DisConnect die Connection schon am Zerbröseln ist.
Frank