Home Navigationspfeil Tutorial Firebird, Lazarus & Zeos II

Lazarus IDE Buch

Professionelles Programmieren von Anfang an mit FreePascal und der freien Entwicklungs- umgebung Lazarus ---------------------------------- Für alle, die mit der kostenlosen IDE Lazarus effektiv programmieren wollen, vom Anfänger bis zum Informatiker. Auch interessant für Umsteiger aus anderen Entwicklungs- systemen. 452 Seiten, Preis 24,99 Euro

Tutorial Firebird Lazarus Zeos II

There will come later (November 19) an English Version also

Dieses Tutorial ist fertig programmiert und kann hier heruntergeladen werden. Es wird nun an der Dokumentation gearbeitet und ich würde sagen die Dokumentation hat nun Release 1.0 Alpha 1 ;-). Das Programm für das Tutorial steht unter dem Menüpunkt Downloads Tutorials zur Verfügung. Die Inhalte in den Programmverzeichnissen werden längere Zeit nicht mehr geändert, die online verknüpften Texte werden je nach Fragen von Anwendern angepasst. Die englischen Texte wird es voraussichtlich irgendwann im November geben. Das Programm ist Windows (das Dateihandling ist in der vorliegenden Form nur in Windows brauchbar) und Firebird affin, aber es dürfte mit wenig Aufwand für andere Betriebssysteme anpassbar sein. SQL Lite sollte mit wenigen Handgriffen lauffähig werden - Protokoll (Protocol) und SQL Anpassung sind wahrscheinlich notwendig. Das Protokoll kann in den Settings eingestellt werden. Möglicherweise baue ich zum Ende des Jahres einen Compilerswitch ein. Momentan fehlt mir die Zeit.

Das Tutorial setzt voraus, dass der grundätzliche Umgang mit Lazarus, Komponenten und deren Eigenschaften (Properties) und Ereignissen (Events) schon gelernt worden ist. Für den Umgang mit SQL und Firebird sind zahlreiche Links in der Dokumentation vorhanden.



Die Dokumentation ist in dreifacher Form vorhanden und kann über Buttons, welche sich auf den einzelnen Seiten befinden aufgerufen werden.

OFF
Lädt eine RTF Datei mit Ihrem Standardeditor. Diese ist im Verzeichnis RTF gespeichert. Sie enthält diesen Text, welcher editierbar ist. Dies soll dazu dienen, wenn Sie mit dem Tutorial experimentieren, dass Sie sich Notizen machen können.

ON
Lädt die Webseite mit diesem Text. Dieser wird wahrscheinlich von Zeit zu Zeit ergänzt, je nach Fragen der User dieses Tutorials. Auf diese Weise ist immer eine aktuelle Version der Beschreibung verfügbar.

Pdf
Wird diesen Text im PDF Format enthalten, um diesen auch verfügbar zu haben, wenn man Offline ist.

Das Programm ist Freeware, das heißt, es kann frei verwendet werden.

Die Komponenten der Datenbank, mit denen wir uns beschäftigen werden:

Die Komponente ZSequence habe ich getestet, aber anscheinend benötigt man ZSequence für Firebird 3 und 4 nicht mehr. Das Hochzählen der Tabellenzeilen funktioniert auch ohne wunderbar. Verwendet man ZSequence wird der Zähler nicht laufend, sondern immer mit einem 2er Sprung hochgezählt. So bleiben noch einige Komponenten übrig, die ich hier kurz erwähnen möchte, da diese im Tutorial nicht mehr vorkommen.


ZReadOnlyQuery

Arbeitet im Prinzip wie ZQuery, allerdings können die Daten nicht editiert werden. Das Ergebnis liefert nur Daten zum Lesen.

ZTable

Wie ZQuery, aber ZTable liefert alle Daten der Tabelle vom Server an das Programm und belastet damit den Datenverkehr bzw. den Datenbankserver gewaltig. Wenn schon eingesetzt, dann nur für Tabellen mit kleiner Datenmenge wie Konfigurationsdaten oder ähnliches. Ich denke, ein Grund, dass es ZTable gibt, ist die Kompatibilität mit der BDE von Delphi.

ZConnectionGroup & ZGroupedConnection

Diese beiden Komponenten werden benötigt, um mehrere Verbindungen (mehrere Datenbanken) zum gleichen Server herzustellen, ohne die Verbindungsparameter ständig auszufüllen.

ZStoredProc

Mit Hilfe von ZStoredProc können in einer Datenbank gespeicherte Prozeduren ausgeführt werden. Es gibt 2 Arten von gespeicherten Prozeduren mit oder ohne Ergebnismenge. ZStoredProc funktioniert ähnlich der StoredProc der BDE von Delphi.

ZSQLMetadata

ZSQLMetadata ist eine spezielle TDataSet Komponente die es ermöglicht auf die Metadaten einer Datenbank zuzugreifen.

ZIBEventalerter

Diese Komponente ist extra für Firebird oder Interbase designend. Mit dieser Komponente können Ereignisse (Event Alert = Ereignisalarm) abgefangen werden, die von in der Datenbank gespeicherten Prozeduren ausgelöst werden. Das könnte eine unterschrittene Lagermenge oder ähnliches sein.

ZPGEventalerter

Entspricht ZIBEventalerter, jedoch für die Datenbank Postgres.

Weitere verwendete Komponenten und Prozeduren und Funktionen

Außer den Zeos Komponenten sind fast alle verwendeten Funktionen in der Standardinstallation von Lazarus 2 installiert. Die Komponente TFileSearch ist nicht installiert  und kann über Package->Installierte Packages einrichten ... installiert werden (filefindlaz) und erscheint auf der Komponentenpalette unter "Examples".

OpenUrl und OpenDocument benötigen die Unit  LCLIntf.

TProcess benötigt die Unit Process.

LemIniRead, LemIniWrite  benötigen die Unit lemroutines, dem Projekt beigefügt.

Alle verwendeten Units, außer den Zeos Komponenten, sind in der Standardinstallation von Lazarus vorhanden, sie müssen nur in der uses Liste angeführt werden.

Wer sich fragt, wie man mit TSplitter arbeitet, sollte hier nachsehen.

Im Programm selber sind einige Stellen weniger "elegant" und andere "eleganter" ausgeführt worden. Ich habe das so gelassen, um die Unterschiede aufzuzeigen. Ich werde hier in der Dokumentation gelegentlich einen Hinweis dazu geben. Die interne Dokumentation ist deutsch und englisch abgefasst, da es später auch eine englische Dokumentation geben wird.

Die einzelnen Lektionen sind in unterschiedlichen Tabs untergebracht. Hier ein kurze Übersicht:

Start
Enthält die obligate Erklärung, dass das Programm Freeware ist, dass es für Lehrzwecke gedacht und dass keinerlei Haftung für die Anwendung übernommen wird. Sowie einen Hinweis auf Turbobird.

QueryQuery
In diesem Teil wird gezeigt, wie man aus einer nicht editierbaren Abfrage über 2 Tabellen weitere Queries verbinden kann welche dann editierbar sind. Wie man die Datenbankfelder Properties direkt über/in den Komponenten ZQuery und im DBGrid bearbeiten kann. In allen anderen Beispielen wird das meiste im Programmcode erledigt.

Queries
Die Ergebnismengen verschiedener Queries werden angezeigt sowie die Tabellen- und Feldnamen. Gedacht ist diese Seite um mit SQL Befehlen zur Datenbearbeitung experimentieren zu können.

EditQuery
Zeigt die Ergebnismenge der Verknüpfung zweier Tabellen welche wie bekannt nicht editierbar sind. Durch den Einsatz von ZUpdateSQL können aber Felder editiert werden.

EditTable
Eine klassische Verknüpfung von zwei Tabellen wird hier vorgestellt. In diesem Programmteil ist auch die Erläuterung der automatischen Nummerierung von Datensätzen untergebracht.

SQL Commands
Hier geht es um das Absetzen von SQL Befehlen ohne Ergebnismenge. Auch die Arbeit mit SetTerm von TZConnection ist hier untergebracht.

Create Database
Die im Programm verwendete Demodatenbank wird hier erstellt. Die dafür notwendigen SQL-Befehle werden vorgestellt. Es kann eine Datenbank mit Inhalten oder eine "leere" Datenbank ohne irgendwelche Definitionen für Experimentierzwecke erstellt werden. Mit "Create Database" kann die Datenbank immer wieder auf bequeme Weise in den Ursprungszustand zurückgestellt werden.

Settings
Die für das Erstellen und Betreiben der Datenbank nötigen Parameter werden hier erfasst. Zusätzlich kann man sich die eingestellten Parameter in einem Fenster zu Gemüte führen, wie die Propertyliste von TZConnection damit ausschauen würde.

Overview
Enthält Links zu verschiedenen Seiten, die bei der Arbeit mit dem Programm hilfreich sein können. Der letzte Button dient der Änderung der Sprache der angezeigten Online Hilfe. Für diese Seite gibt es keine weitere Beschreibung, sie ist selbsterklärend.

Hier gibt es die Anleitung für die Installation von Zeos in Lazarus.

Die letzte Lazarus 2.x.x Version ist hier:
Download Lazarus 2.x.x

Zeos 7.3 Beta erhalten sie hier:
Oben rechts auf Download Snapshot Zeos 7.3 klicken

Firebird 4.0 Beta steht da zum Download bereit:
Firebird 4.0 RCx

Auf der Webseite wiki.freepascal.org/Category:Tutorials/de finden sie auch Links zu Tutorials für Lazarus, Zeos und Firebird.

Allgemeine Hinweise zum Quellcode

Ein paar Hinweise für einen leichter zu pflegenden und wartenden Quellcode:

Eines der wichtigsten Dinge ist selbsterklärender Quellcode (die Bezeichnungen, auch wenn diese ein bisschen länger werden so weit ausschreiben, damit man immer weiß mit welcher Variable man es hier zu tun hat. Außerdem viel interne Dokumentation im Programmcode, etwas unnötige Dokumentation ist besser als zu wenig Dokumentation. Wenn im Tutorial keine Bemerkungen eingefügt wären - wäre sicher streckenweise schwierig zu lesen ...

Zweitens möglichst wenig globale Variablen. Die globalen Variablen, welche ich hier verwendet habe wären auch gut in Parametern der Prozeduren und Funktionen unterzubringen gewesen.

Ab Zeile 1106 werden 10 Speedbutton Klicks mit 5 Prozeduren aus programmiert. Wenn man den Namen und die Tags zur Unterscheidung genommen hätte, wäre das mit einer einzigen Procedure möglich gewesen. Wie das besser zu machen ist sieht man ab Zeile 2297, 2280 und 2363. An dieser Lösung sieht man auch, für was der Property "Tag" effizient eingesetzt werden kann.

Das Dateihandling ist an Windows angelehnt. Hier noch mit wenig Griffen an z.B. Linux anpassbar - in Linux ist der Trenner zwischen Pfad und Datei "/", in Windows "\". Mit einer Konstanten als Vorgabe wäre das im ganzen Programm leicht anzupassen, ohne jede einzelne Programmstelle händisch anpassen zu müssen.

Das sind einige markante Beispiele, wie man Quellcode leicht wartbar und übersichtlich machen kann.

<>

© CMBasic.de