Home » Tutorials » Datenbanken » ZEOS Library – Einsatz mit Delphi und Firebird

ZEOS Library – Einsatz mit Delphi und Firebird

Beispielprojekt: „EasyQuery“

Damit dieses Tutorial nicht all zu trocken wird, möchte ich an dieser Stelle den Einsatz der ZEOS Komponenten anhand eines sehr einfachen Beispiels demonstrieren. Erstellt wird ein kleines Programm, das auf die Tabellen Customer und Country der Beispieldatenbank Employee zugreift. Mit diesem Programm kann in der Customer-Tabelle navigiert und deren Daten auch editiert werden. Damit es aber nicht ganz langweilig wird, ist hier noch ein kleines Schmankerln eingebaut: Eine DBLookupCombobox für das Tabellenfeld COUNTRY. Dieses Feld ist nämlich ein Forign Key und verbunden mit dem Feld COUNTRY der gleichnamigen Tabelle.

Nun aber an die Arbeit!
Zuerst wird in Delphi ein neues Projekt erstellt. Zur standardmäßig angelegten TForm wird nun noch ein DataModule erstellt.
Folgende Properties des DataModule werden gesetzt: Name: dmEasyQuery

Komponenten für das Datenmodul

TZConnection

Database:

      Employee.fdb

Name:

      conEmployee

Password:

      „Passwort“

Protocol:

      firebird-1.5

ReadOnly:

      False

TransactionIsolationLevel

      : tiReadCommitted

User:

    „Benutzername“

TZQuery

Connection:

      conEmployee

Name:

      qryCustomer

RequestLive:

      True

SQL:

      SELECT * FROM customer ORDER BY customer

UpdateObject:

    updCustomer

zusätzlich: persistente TFields aller Tabellenfelder über Feld-Editor erstellen!
Das OnAfterPost-Ereignis von qryCustomer wird wie angegeben ausprogrammiert:

 procedure TdmEasyQuery.qryCustomerAfterPost(DataSet: TDataSet);
begin
  // Refresh der Ergebnismenge, um die im DBGrid dargesetllten Daten
  // neu zu sortieren.
  qryCustomer.Refresh;
end;

TZReadOnlyQuery

Connection:

      conEmployee

Name:

      roqryCountry

SQL:

    SELECT country FROM country ORDER BY 1

zusätzlich: persistente TFields aller Tabellenfelder über Feld-Editor erstellen!

TZUpdateSQL

DeleteSQL:

      über UpdateSql Editor

InsertSQL:

      über UpdateSql Editor

ModifySQL:

      über UpdateSql Editor

Name:

    updCustomer

Die Delete-, Insert- und Modify-Statements für das UpdateSQL-Objekt werden mit dem UpdateSQL-Editor automatisch erzeugt. Der Editor wird mit einem Doppelklick auf die UpdateSQL-Komponente gestartet. Als KeyField wird das Feld CUST_NO in der gleichnamigen Liste markiert. Die Felder ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE, COUNTRY und POSTAL_CODE werden als Update Fields in der Liste Update Fields markiert. Über den Button Generate SQL werden die gewünschten SQL- Statements erstellt. Bei solch einfachen Queries erspart der UpdateSQL-Editor lästige Tipparbeit. Wird es ein wenig komplexer, sollte man die benötigten Statements „von Hand“ erstellen.

TDataSource

DataSet:

      sqlCustomer

Name:

    dsCustomer

TDataSource

DataSet:

      rosqlCountry

Name:

    dsCountry

Nun wird das soeben erstellte DataModule unter dem Namen dm_EasyQuery.pas abgespeichert.

Komponenten für das Formular

Die TForm erhält folgende Komponenten und wird wie folgt initialisiert:
Properties:

Caption:

      Easy Query Demo

Name:

    frmEasyQuery

Im Interface der Unit muss zur uses-Klaussel noch dm_EasyQuery hinzugefügt werden, damit der Zugriff auf die Datenbankkomponenten möglich wird.
Folgende Ereignisse der TForm werden wie angegeben ausprogrammieren:

OnCreate:

Die Verbindung zur Datenbank wird erst hergestellt, wenn die Form erzeugt wird. Nach Herstellen der Verbindung, werden die Queries geöffnet:

 procedure TForm1.FormCreate(Sender: TObject);
begin 
  dmEasyQuery.conEmployee.Connect;
  dmEasyQuery.qryCustomer.Open;
  dmEasyQuery.roqryCountry.Open;
end;

OnDestroy:

 procedure TForm1.FormDestroy(Sender: TObject);
begin
  dmEasyQuery.conEmployee.Disconnect;
end;

TLabel

Caption:

    CUSTOMER

TDBGrid

DataSource:

      dmEasyQuery.dsCustomer

Options.dgTabs:

    False

Im Spalteneditor wird eine TColumn erzeugt und der Property FieldName der Feldname „CUSTOMER“ zugeordnet. Anschließend wird die Spalte im DBGrid1 entsprechend vergößert.

TDBEdit (5x)

TLabel (5x)

Diese Objekte werden durch Zuhilfenahme des Spalteneditors von qryCustomer erzeugt: Die Spalten ADDRESS_LINE1, ADDRESS_LINE2, CITY, STATE_PROVINCE und POSTAL_CODE werden hier markiert und per Drag’n’Drop auf die TForm gezogen, entsprechend angeordnet und ein wenig verkleinert (siehe Screnshot).

TLabel

Caption:

    COUNTRY

TDBLookUpComboBox

DataField:

      COUNTRY

DataSource:

      dmEasyQuery.dsCustomer

KeyField:

      COUNTRY

ListField:

      COUNTRY

ListSource:

    dmEasyQuery.dsCountry

TDBNavigator

DataSource:

    dmEasyQuery.dsCustomer

Nun wird die soeben erstellte Form unter dem Namen frm_EasyQuery.pas abgespeichert.
Folgende Projektoptionen müssen geändert werden:
dmEasyQuery muss in der Erzeugungs-Reihenfolge an den Anfang der Liste „Automatisch erzeugen“ gestellt werden. Somit wird gewährleistet, dass die Objekte der frmEasyQuery auch auf die Datenbankobjekte zugreifen können. frmEasyQuery bleibt Hauptformular.

Die Sourcecodes von „EasyQuery“ und weiterer Demos können hier heruntergeladen werden.

Ein Gedanke zu „ZEOS Library – Einsatz mit Delphi und Firebird“

  1. Lieben Dank für dieses tolle Tutorial. Es ist sehr klar und übersichtlich, und eine tolle Hilfe für den Einstieg.

     

Kommentare sind geschlossen.