Home Navigationspfeil Lazarus, Firebird & Zeos Tipps & Tricks

Lazarus, Firebird und Zeos #Tipps und Tricks

Mehrfachzugriff auf die Firebird Datenbank während der Entwicklung:

Wer mit Lazarus Datenbank Anwendungen entwickelt hat eine Plage. Beim Editieren des Programmes benötigt man oft die Verbindung zur Datenbank. Wenn man dann vergisst (Bei Zeos das Häkchen bei ZConnection->Connected) die Verbindung zu Firebird vor dem Kompilieren und Testen des Programmes/Programmteiles zu trennen erscheint eine Meldung, dass die Datenbank von einem anderen Zugriff verwendet wird und das Programm nicht ausgeführt werden kann. Das gleiche Problem tritt auf, wenn man mal kurz mit einem Datenbanktool in die Datenbankdatei zugreifen möchte.

Es gibt einen Trick, mit welchem man bei der installierten, als auch bei der embedded Version von Firebird dies unterbinden kann. Es sollte mit dieser Einstellung jedoch nur mit Testdaten gearbeitet werden, niemals mit Produktivdaten.

Die Vorgangsweise ist bei der installierten Firebird Applikation 3 oder 4 als auch bei der embedded Version die gleiche, mit dem Unterschied, dass bei der installierten Version der verwendete Texteditor mit Administratorrechten gestartet werden muss.

Starten Sie einen Editor und laden Sie die Datei im Programmverzeichnis von Firebird und laden Sie die Datei "firebird.conf" in den Editor. Am Ende dieser Datei tippen Sie folgendes ein:

ServerMode = SuperClassic
SharedCache = true
SharedDatabase = true

Dann speichern die Datei "firebird.conf". Das war es. Von jetzt an brauchen Sie die Verbindung zur Datenbank nicht mehr abbrechen um ihr neu kompiliertes Programm zu starten. Wie gesagt, das funktioniert auch bei einem installierten Server. Was allerdings nur bei der Embedded Version von Firebird funktioniert ist das Aufrufen eines weiteren Programmes, wie zum Beispiel dem Datenbanktool Turbobird. Wenn Sie eine Datenbank überschreiben wollen, darf allerdings bei allen Varianten kein Zugriff auf die Datenbankdatei bestehen.

Das sagt Firebird zu SuperClassic:

SuperClassic / ThreadedShared - databases are opened by single server process,    but it does not prevent opening them in other processes (embedded access),
each attachment has its own DB pages cache.

SuperClassic / ThreadedShared - Datenbanken werden von einem einzelnen Serverprozess geöffnet, verhindern jedoch nicht das Öffnen in anderen Prozessen (eingebetteter Zugriff). Jeder Zugriff verfügt über einen eigenen DB-Seiten-Cache.

Beim Ausliefern eines Programmes mit der embedded Version ist dies unter Umständen notwendig, damit eine Tabelle mehrfach gelesen werden kann. Das habe ich noch nicht getestet.


 

 

© CMBasic.de