Genau deshalb starte ich meine Firebird-
DB-Clients, die einerseits die Server-Variante, andererseits aber auch die Embedded-Variante bedienen sollen, mit Startparametern. Daraus ergibt sich dann, welche Client-
DLL geladen wird:
Delphi-Quellcode:
Function TDatMod.VerbindenDatenbank : Boolean;
begin
Result := False;
If ConMain.Connected
Then ConMain.Disconnect;
Case GL.DB_Modus
Of
0 :
Begin // Embedded
ConMain.ClientLibrary := GL.Pfad_Main + GL.ClientEName;
ConMain.Server := '
';
ConMain.Port := '
';
End;
1 :
Begin // Server Lokal
ConMain.ClientLibrary := GL.Pfad_Main + GL.ClientName;
ConMain.Server := '
LocalHost';
ConMain.Port := '
3050';
End;
2 :
Begin // Server Remote
ConMain.ClientLibrary := GL.Pfad_Main + GL.ClientName;
ConMain.Server := '
MyDBServer';
ConMain.Port := '
3050';
End;
End;
ConMain.Database := GL.DB_Pfad + GL.DB_Name;
ConMain.AutoCommit := True;
ConMain.LoginPrompt := False;
ConMain.Options.Charset := '
UTF8';
ConMain.Options.DefaultSortType := stCaseInsensitive;
ConMain.Options.UseUnicode := True;
ConMain.SQLDialect := 3;
Try
ConMain.Connect;
Result := True;
Except
On e:
exception DO GL.FehlerMeldung := '
Fehler beim Verbinden mit Datenbank: ' + e.
Message;
End;
end;
wobei
Delphi-Quellcode:
UNIT GlobalVars;
INTERFACE
...
PUBLIC { Public-Deklarationen }
Const
ClientName = '
fbclient.dll';
ClientEName = '
fbclientE.dll';
...
Class Var
...
DB_Modus : Byte;
...
Aufgerufen wird das Ganze dann beim Programmstart:
Delphi-Quellcode:
Procedure TFormMain.FormActivate(Sender: TObject);
begin
...
If Not DatMod.VerbindenDatenbank Then
Begin
ShowMessage(GL.FehlerMeldung);
Close;
Exit;
End;
...
end;