Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#11

AW: Vor- und Nachteile von FB embedded für Einzelrechneranwendung

  Alt 22. Mai 2014, 00:13
Das Verhalten einer Delphi-Anwendung, die auf eine servergesteuerte Firebird-Datenbank zugreift, ist absolut identisch mit dem Verhalten bei Zugriff auf dieselbe DB im Embedded-Modus. Ich entwickle seit Jahren Firebird-DB-Anwendungen und hatte in dieser Zeit keinen einzigen Datenbank-Fehler durch Programmabstürze. Falls das doch einmal geschehen sollte, bin ich dennoch immer auf der sicheren Seite, da meine Client-Anwendungen größtenteils dazu fähig sind, DB-Backups zu erstellen: beim Start, beim Programmende oder sonstwo dazwischen. Alle meine Anwendungen werden bereits beim Projektbeginn so konzipiert, daß sie wahlweise als Server- oder Embedded-Variante einsetzbar sind. Dazu verwende ich die Parameterliste:

1. Variante: Wird eine kompilierte Firebird-DB-Anwendung ohne jeglichen Parameter gestartet, sucht sie beim Programmstart erst nach der Embedded-DLL (die ich stets fbclientE.dll nenne) und dann nach der benötigten Datenbank im Programmordner, der in diesem Fall ein beschreibbarer Ordner sein sollte.

2. Variante: Steht in der Parameterliste "0 F:\Datenbanken" (Aufruf der Exe: MeinProgramm.exe 0 F:\Datenbanken), wird ebenfalls die Embedded-DLL im Programmordner verwendet und er sucht im angegebenen Pfad nach der Datenbank.

3. Variante: steht in der Parameterliste "1 F:\Datenbanken", geht das Programm von einem installierten Firebird-Server aus, sucht im Windows-Verzeichnis nach der "normalen" Firebird-Library fbclient.dll. Wird diese nicht gefunden, sucht das Programm aus der Registry den Installationsordner des Firebird-Servers und nimmt die dortige DLL. Wird das auch nicht gefunden ... usw. Danach, wenn eine Firebird-Server-Installation und die DLL gefunden wurden, sucht das Programm im angegebenen Ordner nach der Datenbank. Wird diese nicht gefunden, sucht er im Programmordner danach. Wird sie dort auch nicht gefunden, bricht das Programm mit einer Fehlermeldung ab.

Eine 4. Variante wäre dann z.B. der Zugriff auf einen Remote-Server.

Anmerkung: Auch Anwendungen, die später ausschließlich im Embedded-Modus laufen sollen, entwickle ich gerne im Server-Modus. Der Grund war anfangs, daß die Embedded-Variante früherer Versionen keinen Multiuser-Zugriff gestattete und ich ständig vor dem Starten in der IDE die Datenbankverbindung im DB-Manager (bei mir: IbExpert) trennen mußte, weil sonst die DB-Verbindung meiner Anwendung nicht zustande kam. Heute mach ich das noch immer so, damit im Falle eines Falles auch immer alle Varianten zur Verfügung stehen.
  Mit Zitat antworten Zitat