ZConnection

ZConnection ist die Verbindung zwischen der Datenbank und den einzelnen Datenbankkomponenten. Die Komponente TZConnection ist der Delphi BDE TDatabase ähnlich. Zeos ist wie schon gesagt den BDE Komponenten in der Funktion sehr ähnlich.

Properties


AutoCommit

AutoCommit ist standardmäßig auf true (= aktiv). Dies steuert die sogenannten Transaktionen. Die Firebird Datenbank schreibt die geänderten, gelöschten oder neu erstellten Daten nicht direkt (physikalisch) sofort in die Datenbank. Die Daten werden zwischengespeichert und erst wenn der SQL Befehl "Commit"  abgesetzt wird werden die Daten auf das Speichermedium geschrieben. Tritt dabei ein Fehler auf, so werden alle Daten, welche ab Beginn der Transaktion bearbeitet wurden, verworfen. Das Prinzip dahinter ist, entweder sind alle Änderungen OK oder es wird der Ursprungszustand wieder hergestellt.
AutoCommit True bedeutet, dass bei einer Änderung, Löschung oder Neuanlage die Daten sofort geschrieben (= mit Commit bestätigt) werden. Das entspricht dem Verhalten der BDE Komponenten von Delphi.

Um die "Oberhoheit" über eine Transaktion selbst zu bekommen, um mehrere SQL Befehle zusammenzufassen muss die Methode StartTransaction aufgerufen werden. AutoCommit ist dann ausgeschaltet. Durch den Aufruf der Methode Commit werden die Änderungen bestätigt bzw. auf den Datenspeicher geschrieben. 'Mit der Methode Rollback können  diese Änderungen seit Start mit StartTransaction rückgängig gemacht werden. Nach Durchführung dieser einen Transaktion  ist   AutoCommit wieder eingeschaltet.


AutoEncodeStrings
Wenn AutoEncodeStrings aktiv (true) ist, versucht Zeos, Ihre Daten zwischen dem Verbindungszeichensatz und der Einstellung von ControlsCodePage zu übersetzen. Das kann zu einem Datenverlust führen, wenn keine Konvertierung möglich ist. AutoEncodeStrings ist deshalb nur auf true zu setzen, wenn eine Konvertierung notwendig ist.

Catalog
Wird von Firebird nicht verwendet. Es ist für PostgreSQL gedacht.

ClientCodePage
Dies ist der Zeichensatz, den unser Programm vom Datenbankserver zum Senden der Daten an unser Programm anfordert. Die meisten Server können problemlos Zeichen zwischen dem Anfordernden Programm und dem Server konvertieren. In einem Unicode Entwicklungssystem wie Lazarus ist es am besten, Zeichendaten in UTF8 anzufordern.

Connected
Connected verbindet die Datenbank mit unserem Programm, wenn der Wert auf true gesetzt ist. Bei false ist die Verbindung gelöst.

ControlsCodePage
Damit können Sie bestimmen, welche Zeichencodierung Sie in Ihren TDatasets (TZQuery, TZReadOnlyQuery und TZTable) den Vorzug geben.

cCP_UTF8 : Dies ist die Standardeinstellung für Lazarus. Die übergebenen Strings werden als UTF8 erwartet und die TStringFields übergeben. Da TStringField auch für Multibytezeichen nur ein Byte zur Verfügung stellt erhöht Zeos die Größe von TStringField um das vierfache. Ein String im VarChar Format mit 10 Zeichen hat eine TSTringField.Size Größe von 40 Zeichen.

cCP_UTF16 und cGET_ACP:  sind wegen Delphi implementiert und sollten in Zeos nicht verwendet werden.

Database:
Der Speicherort und der Name der Datenbank mit der Endung ".fdb",
zum Beispiel "C:\LAZENTWICKLUNG\EMPLOYEE.FDB".

DesignConnection
Wenn der Wert auf true gesetzt ist, dann ist die Verbindung zur Entwurfszeit aktiv und es können die Datenbanksteuerelemente (ZQuery, ...) in den Formularen bearbeitet werden. Hat bei mir mit Firebird nicht funktioniert. Aber es gibt eine andere Lösung.

Hostname:
Kann für unsere Zwecke in der Regel leer gelassen werden. Unter Umständen ist es notwendig hier "localhost" oder die IP-Adresse der Datenbank einzutragen.

LibraryLocation:
Wo sich das Datenbankprogramm "fbclient.dll" befindet, bei der Standardinstallation
zum Beispiel "C:\Program Files\Firebird\Firebird_4_0\fbclient.dll".

LoginPrompt
Wenn true wird nach Benutzer und Passwort gefragt.

Name:
Der Name der Komponente, Standard ist ZConnection1.

Password:
Das Standardpasswort von Firebird ist "masterkey".

Port:
Sollte es Probleme mit der Datenbank geben, kann hier unter Umständen der Standardwert "3050" der Firebird Datenbank helfen. Bei mehreren Installationen von Firebird kann man die Port Nummer z.B. auf 3051 setzen.

Properties:
Wird in unserem Fall im Programm verwendet und den Erstellen-Befehl abzusetzen. Hier können verschiedene Parameter an die Datenbank übergeben werden.

Protocol
In unserem Fall immer "firebird".

ReadOnly
Wenn der Wert auf true gesetzt ist können die Daten nur abgefragt, aber nicht bearbeitet werden.

SQLHourGlass
Zeigt ein "HourGlass" (Sanduhr) während eine SQL Anweisung abgearbeitet wird.

Tag
Standard von Lazarus für alle Komponenten. Ich kann mir bei dieser Komponente keine Verwendung denken.

TransactIsolationLevel

tiNone: wird von Firebird nicht unterstützt und mit einer Fehlermeldung quittiert

tiRepeatableRead: Das entspricht dem Transaction Isolation Lever (TIL) "Snapshot" von Firebird und ist bei Firebird Standard. Es wird ein "Schnappschuss des verwendeten Datenbestandes erstellt. Andere Anwender erhalten dann mit einer Fehlermeldung, wenn zwei Transaktionen denselben Datensatz bearbeiten wollen. Änderungen anderer Transaktionen werden nicht wahrgenommen.

tiReadCommitted: Die von uns verwendete Einstellung. Diese Einstellung ist bei Firebird der TIL "Read Committed". Diese Einstellung nimmt die durch Commit gespeicherten Änderungen anderer Anwender wahr. Mit dem Parameter "rec_version" dass immer die von anderen Anwendern gespeicherten Änderungen wahrgenommen werden. Ein weiterer Parameter, "Nowait". sorgt dafür dass nicht auf die Freigabe von blockierten Datensätzen gewartet wird. Firebird wird mit dieser Einstellung stärker beansprucht.

tiSerializable: Dient dem exklusiven Zugriff auf die zu bearbeitenden Daten und verhindert eine Mehrbenutzerzugriff.

UseMetaData
Wenn "true", dann werden Metadaten (Systemtabellen) verwendet.

USER
Der Username der Datenbank. Standard- bzw. Start Username von Firebird ist
"SYSDBA".

Version
Die Version der Zeos Komponenten.

 

Ereignisse


Die Ereignisse von ZConnection
sind eigentlich selbsterklärend. Es besteht hier die Möglichkeit, eigenen Programmcode einzufügen, bevor oder nach der ausgeführten Operation von TZConnection. Das Einfügen von eigenen Programmteilen ist wie bei allen anderen Lazarus Komponenten zu handhaben.

Eigener Programmcode kann ausgeführt werden:

AfterConnect: Nach dem Verbinden mit der Datenbank
AfterDisconnect: Nach dem Beenden der Datenbankverbindung
AfterReconnect: Nach einem weiteren Verbinden mit der Datenbank
BeforeConnect: Bevor die Datenbank mit dem Programm verbunden wird
BeforeDisconnect: Bevor die Verbindung endgültig unterbrochen wird
BeforeReconnect: Bevor einem weiterem Verbinden mit der Datenbank
OnCommit: Wenn ein Commit (Daten werden geschrieben) abgesetzt wird
OnLogin: Beim Einloggen in die Datenbank
OnRollback: Wenn ein Rollback (Änderungen werden verworfen) gemacht wird
OnStartTransaction: Wenn eine neue Transaktion gestartet wird

 <>

 

© CMBasic.de