Home Navigationspfeil Tutorial Firebird, Lazarus & Zeos I Navigationspfeil Formular Firebird Datenbank mit Zeos erstellen

Formular Firebird Datenbank mit Zeos erstellen

Zum Erstellen einer Datenbank reicht eine TZConnection Komponente aus. Für das weitere Arbeiten wie Tabellen anlegen usw. hat sich TSQLProcessor als am besten geeignet herausgestellt. In diesem Teil beschäftigen wir uns nur mit "Create Database" und TZConnection.

Da das relativ kompakte Beispielprogramm heruntergeladen werden kann  werden hier nur Erläuterungen zum benötigten Wissen gegeben. Alles weitere kann aus dem Beispielprogramm "extrahiert" werden.

Wir beschäftigen uns hier zuerst mit dem Datenmodul "datamodulezeos" und dem Modul/Fenster "FormZeosAnlage". Auf dem Datenmodul befindet sich das Control "ZConnectionFirebird". Hier sind einige Eigenschaften bereits zugewiesen. Diese werden aber im späteren Verlauf überschrieben. Es soll hier nur gezeigt werden, dass die Zuweisung auch direkt im Control möglich ist. Nicht beschriebene Eigenschaften können hier unverändert belassen werden oder sind fürs erste nicht zu ändern.


  Properties von ZConnectionFirebird

Eigenschaften, welche eingestellt werden müssen:

ControlsCodePage:
"cCP_UTF8". Lazarus verwendet auch UTF8 für Strings und damit ist Kompatibilität beim Zeichensatz gegeben.

Database:
Der Speicherort der Datenbank mit der Endung ".fdb". In unserem Fall befindet sich die Datenbank im Verzeichnis "C:\LAZENTWICKLUNG" und heißt "EMPLOYEE.FDB".

Hostname:
Kann in der Regel leer gelassen werden. Unter Umständen ist es notwendig hier "localhost" einzutragen.

LibraryLocation:
Wo sich das Datenbankprogramm "fbclient.dll" befindet. In unserem Fall ist das "C:\Program Files\Firebird\Firebird_4_0\fbclient.dll". Firebird wurde mit der Standardinstallation und den Vorgaben der Installation erstellt.

Name:
Der Name "ZConnection1" wurde von mir auf "ZConnectionFirebird" geändert.

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.

Properties:
Wird in unserem Fall im Programm verwendet und den Erstellen-Befehl abzusetzen.

User:
Der Standard-User von Firebird ist "SYSDBA"

Password:
Das Standardpasswort ist "masterkey"

 Wir wechseln nun zu "FormZeosAnlage".

Auf diesem Eingabeformular haben wir die Möglichkeit der zu erstellenden Datenbank die von uns gewünschten Werte zuzuweisen, bevor wir diese erstellen.

In der Procedure TFormFBAnlegen.FormCreate werden einige Werte vom letzten CREATE eingelesen, damit diese nicht immer wieder von Hand eingegeben werden müssen.

In der Procedure TFormFBAnlegen.BBtnDatabaseCreateClick werden diese Werte verarbeitet. Wir werden diese jetzt der Reihe nach durchgehen, ab Zeile 65.

"Usr:= EdtDBUsername.Text;"
Der verwendete Username der zu erstellenden DB, in unserem Fall "SYSDBA".

"Pawo:= EdtDBPassword.Text;"
Das Passwort der zu erstellenden DB, in unserem Fall "masterkey".

"Chrset:= CHDBCharset.Text;"
Der verwendete Characterset" In der Regel "UTF8".

"dbname:= DEDBSetpath.Text+ '\'+ EdtDatabaseName.Text+'.FDB';"
Der Pfad und Name der Datenbank, zusammengesetzt aus den Eingabefeldern "DEDBSetpath.Text" und "EdtDatabaseName.Text" und ".FDB'".

"if fileexists(dbname) = true then begin"
Falls die Datenbank schon existiert, dann Erstellen abbrechen (exit in Zeile 78).

"with dmZeosFirebird.ZConnectionFirebird do begin"
Ein With sorgt dafür, dass man nicht immer den ganzen langen Namen des Bezeichners im Sourcecode eingeben muss.

Hier werden die Werte an die ZConnectionFirebird übergeben. "Database"  könnte auch mit "dmZeosFirebird.ZConnectionFirebird.Database:= dbname;" zugewiesen werden. Damit nicht jedes mal dieser lange Namen eingegeben werden muss gibt es die "With" Anweisung. Database, Protocol, User, Password sind Werte von ZConnectionFirebird. "Protocol" ist in Zeos 7.3 "firebird" und wird hier von einer in LemRoutines angelegten globalen Variable übernommen, definiert in Zeile 15 und in "initialization" (Zeile 100) zugewiesen. Ich habe bei diesem Programm mit ein paar andere Dinge "ausprobiert", z.B. das Arbeiten mit INI-Dateien.

    Database:= dbname;
    Protocol := DBProtocol; // firebird
    User := Usr;
    Password := Pawo;

"Properties.Clear;"
In "Properties" werden für die Anlage der Datenbank die benötigten Werte zugewiesen und soll deshalb vorher sicherheitshalber mit "Clear" geleert werden.

    { Script für die Erstellung der Datenbank zusammenbauen }
    Properties.Add ('CreateNewDatabase=CREATE DATABASE ' +
      QuotedStr (dbname) +
      ' USER ' +
      QuotedStr(Usr) +
      ' PASSWORD ' + QuotedStr(Pawo) +
      ' PAGE_SIZE 4096 DEFAULT CHARACTER SET '+ Chrset);

stellt den Script für die Datenbankanlage zusammen.

"Properties.Add ('CreateNewDatabase=CREATE DATABASE ' "
ist der Befehl für die Anlage der Datenbank und im Anschluss werden die benötigten Parameter zusammengestellt, die oben schon erklärt wurden. PAGE_SIZE 4096 hatte bei meiner Konfiguration keine Wirkung, die PAGE_SIZE war bei der erstellten Datenbank auf 8096 ;-).

OuotedStr gibt zum String "'" hinzu.

"Memo1.Lines:= Properties"
Dient zur Anzeige, wie dasScript ausschaut.

"Connect"
Verbindet TZConnectionFirebird mit der Datenbank, d.h. in unserem Fall, die Datenbank wird erstellt. Das Disconnect sorgt dafür., dass die neu angelegte Datenbank nicht verbunden bleibt und damit für weitere Tätigkeiten blockiert ist.

Im Anschluss wird geprüft, ob die neu angelegte Datenbank auch tatsächlich existiert. Die Komponente "FileListBoxDB" dient zur Anzeige der existierenden Datenbanken im Directory welches in DEDBSetpath.Text definiert ist (mit ".fdb").

Anschließend, bei erfolgreich erfolgter Datenbankanlage werden die Werte der Eingabefelder in eine INI-Datei geschrieben, damit das nächst mal nicht wieder alles neu erfasst werden muss.

Das sollte in Zusammenhang mit dem Sourcecode ausreichen, das Erstellen einer Datenbank mit TZConnection zu verstehen.

Dieses Beispiel dient dem Verständnis, wie eine Datenbank mit ZConnection angelegt werden kann und ist unter diesem Gesichtspunkt zu verstehen. Mehr Informationen über Zeos gibt es, wenn ich wieder Zeit dafür finde. Als Nächstes geht es an die Erstellung der Tabellen und Co.

<>

 

© CMBasic.de