Hab die Nuss geknackt !!!
in der
DLL prüfen:
Delphi-Quellcode:
function CheckDBisAvailable(
DB: TIBDatabase): Boolean;
Var
GDSL : IGDSLibrary;
DPB :
String;
DPBLength : short;
I : Integer;
Begin
GDSL := GetGDSLibrary;
GenerateDPB(
DB.Params, DPB, DPBLength);
I :=
DB.Call(GDSL.isc_attach_database(StatusVector, Length(
DB.DatabaseName),
PChar(
DB.DatabaseName), @
DB.Handle,
DPBLength, PChar(DPB)), False);
if I = 0
then
Result := true
else
Result := False;
end;
.
.
.
DM.TestDB.DatabaseName := '
C:\Test1.gdb';
DM.TestDB.LoginPrompt := False;
DM.TestDB.Params.Add('
USER_NAME=Test');
DM.TestDB.Params.Add('
password=Test');
if CheckDBisAvailable(DM.TestDB)
then
DM.TestDB.Connected := true
else
Begin
DM.TestDB.DatabaseName := '
C:\Test2.gdb';
DM.TestDB.Connected := True;
end;
.
.
.
So bekomme ich keine
Exception und somit auch keine Problem beim entladen der
DLL.
So ich geh jetzt 'ne Kuh töten... man man man, was für ein gefummel. Aber jetzt läufts.
Vielen lieben Dank für die viele Mühe, hoika.
Deine Lösung werd ich aber auch noch testen.
Ich hoffe dieser Threat hilft anderen auch.
Cya,
Sar D'Ger
P.S.
Zitat von
hoika:
(raise
Exception.Create('hoika weiss (fast) alles'))
jetzt: (raise
Exception.Create('hoika weiss (fast) alles, und jetzt ein kleines bischen mehr'))