Difference between revisions of "Databases/de"

From Free Pascal wiki
m
Line 1: Line 1:
 
{{Databases}}
 
{{Databases}}
  
Arbeit ist im Gange..
+
== Einleitung ==
== Einführung ==
 
  
Diese Seite handelt über die Erzeugung von Datenbank Anwendungen mit Lazarus unter Verwendung der DB Unit. In der DB Unit ist die grundlegende Funktionalität für die Arbeit mit Datenbanken implementiert, aber um sie nutzen zu können, brauchen sie Komponenten, welche von der Datenbank abhängen, die sie benutzen wollen.
+
Wie bei anderen Entwicklungssystemen auch spielt die Zusammenarbeit mit verschiedenen Datenbanken bei Lazarus eine nicht unbedeutende Rolle. Während ein Teil der Funktionalität schon mit FPC zur Verfügung steht, kommen andere Teile (insbesondere die visuellen Komponenten) erst mit Lazarus selbst hinzu. Die bei Lazarus enthaltenen Komponenten decken schon ein gewisses Spektrum an Datenbanken ab. Da aber immer Verbesserungsbedarf besteht und es auch exotischere Datenbanken gibt, existieren externe Komponenten/Bibliotheken, welche die Möglichkeiten von Lazarus erweitern.  
  
Der erste Teil bietet eine kurze Einführung über verschiedene Datenbank-abhängige Komponenten und wie man sie installiert, der zweite Teil ist ein kurzer Kursus im Arbeiten mit der DB Unit und der letzte Teil bietet spezifische Informationen über verschiedene unterstützte Datenbanken.
+
Diese Seite stellt einen Einstieg für das Thema 'Lazarus und Datenbanken' dar. Die folgende Tabelle bietet einen Überblick über die unterstützten Datenbanken. Da sie noch auf dem Stand von FPC 1.9.7 basiert, sollte sie schnellstens auf den aktuellen Stand gebracht werden. Eine Warnung noch an alle Experimentierfreudigen: Installieren sie nur die Datenbank-Komponenten, deren Client-Bibliotheken (falls diese erforderlich sind) auf ihrem Computer installiert sind. Sonst kann es passieren, daß Lazarus den Start mit einer Fehlermeldung (wegen fehlender Dateien) verweigert. Da sie somit keine Möglichkeit mehr haben, die Komponenten zu deinstallieren, ist eine Neuinstallation von Lazarus erforderlich.
  
== Erster Teil: Allgemeine Informationen über unterstützte Datenbanken ==
+
=== Tabelle 1 ===
 
 
=== Einleitung ===
 
 
 
Die Datenbanken, die sie mit Lazarus benutzen können, (eigentlich mit FPC, aber das ist nicht so wichtig für den Rest der Geschichte) lassen sich in zwei Kategorien unterteilen: Die Datenbanken, die komplett 'intern' sind und in Freepascal geschrieben, und die 'externen' Datenbanken, zu denen die Verbindungen mit Client-Bibliotheken hergestellt werden. Um diese Client-Bibliotheken zu benutzen, müssen die passenden Verbindungen verfügbar sein. Die meisten Client-Bibliotheken kommen nur mit Verbindungen für C, aber FPC bietet verschiedene Packages mit den Pascal-Verbindungen für Datenbank Clients. Die unterstützten Datenbanken sind in Tabelle 1 aufgelistet (Stand FPC 1.9.7).
 
 
 
==== Tabelle 1 ====
 
  
 
{| BORDER="1" CELLSPACING="0"
 
{| BORDER="1" CELLSPACING="0"
Line 47: Line 40:
 
|}
 
|}
  
=== Die Anbindungen zu den Datenbank-Clients ===
+
== Weitere Informationen zu Lazarus und Datenbanken ==
 +
 
 +
* FAQ: [[Lazarus DB Faq/de|Lazarus Datenbank FAQ]]
 +
* Tutorial: [[Lazarus Database Tutorial/de|Lazarus Database Tutorial]]
 +
* MySQL: [[MySQLDatabases/de|MySQLDatabases]]
 +
* Firebird: [[Firebird in action]]
  
Wenn sie eine der Datenbank Client-Bibliotheken benutzen wollen, müssen diese Bibliotheken installiert sein. Nicht nur auf dem Computer, auf dem sie programmieren, sondern auch auf den Computern, auf denen die Anwendung laufen muß. Beachten sie, daß einige Datenbanken (im besonderen MySQL) nur arbeiten, wenn die Bindungen, die in die Applikation einkompiliert sind, identisch mit den installierten Bibliotheken sind.
+
== Unterschiede zu Delphi ==
Wie man diese Bibliotheken installiert (.so Dateien bei *nix Systemen, und .dll's bei Windows), können sie auf der Internetseite der Datenbank-Entwickler finden. Die binding Units finden sie im packages/base Verzeichnis in den FPC Quellen. Sie bestehen hauptsächlich aus Client-API Aufrufen wie mysql_connect_database, welche völlig verschieden sind für jede Datenbank. Es ist möglich, Datenbank-Anwendungen unter Verwendung dieser Units zu schreiben, aber es ist meistens weit mehr Arbeit und fehleranfälliger als die Verwendung der DB-Unit Lazarus Komponenten.
 
  
Die meisten dieser Bindungspakete sind mit den Client-Bibliotheken hart verlinkt. Das bedeutet, daß wenn die Anwendung mit einer dieser Units darin kompiliert wurde, die ganze Anwendung nicht gelinkt werden kann falls die Clientbibliotheken nicht auf der Workstation verfügbar sind. Wenn sie - zum Beispiel - MySQL nicht auf ihrem Computer installiert haben, und sie die mysql4.pp Unit in ihrem Programm verwenden, würde das Programm nicht gelinkt. Wenn es ihnen gelingt, das Programm zu kompilieren auf einem Computer, auf dem MySQL installiert ist, würde es dennoch nicht starten auf jeder anderen Workstation ohne die zugehörigen MySQL-Bibliotheken.
+
Der vielleicht wichtigste Vorteil von Lazarus gegenüber Delphi ist die Plattformunabhängigkeit. Das bedeutet auf der anderen Seite, daß es für die Windows-spezifischen Teile bei Delphi (z.B. die BDE) keine direkten Entsprechungen bei Lazarus gibt. Gleiches gilt für die meisten Reporting-Werkzeuge. Bei der Konvertierung eines Delphiprogramms nach Lazarus sollte man auf die verschiedenen Dateisysteme achten, wenn das Programm auf allen von Lazarus unterstützten Plattformen laufen soll. Als Beispiel möchte ich nur die unterschiedlichen Trennzeichen im Pfadnamen ( \ bzw. / ) nennen.
  
Um solche Probleme zu vermeiden sind einige der Packages in der Lage, sich dynamisch zu den Bibliotheken zu linken. Bevor irgendein Aufruf dieser Bibliotheken erfolgen kann, muß die Unit 'initialisiert' werden. Diese Initialisierung schlägt fehl, wenn der Datenbank-Client nicht auf dem Computer installiert ist. Wenn das Programm bereit ist, die Client-Bibliothek zu benutzen, muß die Unit 'released' werden.
+
== In Lazarus enthaltene Datenbank-Packages ==
  
=== Die Datenbank-Komponenten in Lazarus ===
+
=== sqldblaz.lpk ===
 +
Dieses Package bietet Zugriff auf verschiedene Datenbanken (z.B. MySQL oder Interbase/Firebird). Das Package wird standardmäßig mit Lazarus installiert. Die Komponenten befinden sich auf der 'SQLdb' Seite in der Komponentenpalette.
  
== Zweiter Teil: Benutzung der Komponenten in der DB Unit ==
+
=== dbflaz.lpk ===
 +
Dieses Package bietet Zugriff auf dBase und FoxPro Datenbanken. Weitere Informationen bietet das [[Lazarus Tdbf Tutorial/de|Lazarus TDbf Tutorial]]. Das Package wird standardmäßig mit Lazarus installiert. Die Komponente TDbf befindet sich auf der 'Data Access' Seite in der Komponentenpalette.
  
Dieser Abschnitt bietet ein kurzes Tutorial, welches für alle Datenbanken gilt, die auf der DB Unit basieren. Bevor sie die DB Unit benutzen können, muß eine Datenbank-Komponente installiert sein. Als Beispiel wird Tdbf genutzt, aber jeder TDataset Nachfahre könnte genutzt werden.
+
=== interbaselaz.lpk ===
 +
Dieses Package bietet Zugriff auf Interbase und Firebird Datenbanken. Es ist den Komponenten bei Delphi nachempfunden, aber bei weitem nicht so umfangreich (enthält nur 3 Komponenten: TIBDatabase, TIBTransaction, TIBQuery). Außerdem erlauben diese Komponenten nur einen Lesezugriff. Das Package muß manuell installiert werden. Die Komponenten befinden sich dann auf der 'Interbase' Seite in der Komponentenpalette.
  
'''Schritt eins:'''
+
=== sqlitelaz.lpk ===
Erzeugen sie eine neue Lazarus Anwendung
+
Dieses Package bietet Zugriff auf SQLite Datenbanken. Weitere Informationen sind im [[Lazarus Database Tutorial/de|Lazarus Database Tutorial]] zu finden.
  
'''Schritt zwei:'''
+
=== sdflaz.lpk ===
Legen sie eine [[Lazarus_Tdbf_Tutorial/de | Tdbf Komponente]] auf ihrem Formular ab. (oder jeden anderen TDataset Nachfahren natürlich) Dieser TDataset-Nachfahre dient dazu, Daten in einer Tabelle oder Query abzurufen.  
+
Das Package wird standardmäßig mit Lazarus installiert. Die Komponente TSdfDataSet befindet sich auf der 'Data Access' Seite in der Komponentenpalette.
  
'''Schritt drei:'''
+
== Externe Komponenten/Bibliotheken ==
Legen Sie eine Tdbf und eine TDatasource Komponente auf ihrem Formular ab. Die Tdbf dient dazu, Daten in einer Tabelle oder Query abzurufen, die TDatasource ist das Bindeglied zwischen TDataset und den sichtbaren Komponenten auf dem Formular, wie TDBEdit. Die beiden Komponenten verbindet man miteinander, indem man die 'Dataset' Eigenschaft von TDatasource auf das TDataset setzt. (In diesem Fall: Dbf1)
 
  
 +
=== Zeos Bibliothek ===
 +
Diese Bibliothek bietet Zugriff auf verschiedene Datenbanken. Informationen zum Zusammenspiel von Zeos und Lazarus finden sie im [[Zeos tutorial/de|Zeos Tutorial]].
  
 +
=== TPSQL ===
 +
Diese Komponenten bieten Zugriff auf PostgreSQL Datenbanken. Weitere Informationen finden sie auf [[TPSQL|dieser Seite]].
  
 +
=== FIBL ===
 +
Diese Komponenten bieten Zugriff auf Interbase und Firebird Datenbanken. Die Homepage ist [http://sourceforge.net/projects/fibl].
  
--[[User:Loesje|Loesje]] 14:39, 10 Feb 2005 (PST)
+
=== LazReport ===
 +
Die Homepage für den Reportgenerator ist [http://lazreport.sourceforge.net/].

Revision as of 12:39, 18 June 2006

Deutsch (de) English (en) español (es) français (fr) italiano (it) português (pt) русский (ru) 中文(中国大陆)‎ (zh_CN)

Einleitung

Wie bei anderen Entwicklungssystemen auch spielt die Zusammenarbeit mit verschiedenen Datenbanken bei Lazarus eine nicht unbedeutende Rolle. Während ein Teil der Funktionalität schon mit FPC zur Verfügung steht, kommen andere Teile (insbesondere die visuellen Komponenten) erst mit Lazarus selbst hinzu. Die bei Lazarus enthaltenen Komponenten decken schon ein gewisses Spektrum an Datenbanken ab. Da aber immer Verbesserungsbedarf besteht und es auch exotischere Datenbanken gibt, existieren externe Komponenten/Bibliotheken, welche die Möglichkeiten von Lazarus erweitern.

Diese Seite stellt einen Einstieg für das Thema 'Lazarus und Datenbanken' dar. Die folgende Tabelle bietet einen Überblick über die unterstützten Datenbanken. Da sie noch auf dem Stand von FPC 1.9.7 basiert, sollte sie schnellstens auf den aktuellen Stand gebracht werden. Eine Warnung noch an alle Experimentierfreudigen: Installieren sie nur die Datenbank-Komponenten, deren Client-Bibliotheken (falls diese erforderlich sind) auf ihrem Computer installiert sind. Sonst kann es passieren, daß Lazarus den Start mit einer Fehlermeldung (wegen fehlender Dateien) verweigert. Da sie somit keine Möglichkeit mehr haben, die Komponenten zu deinstallieren, ist eine Neuinstallation von Lazarus erforderlich.

Tabelle 1

Datenbank Package Name Need client lib? Need server? Unterstützte Versionen Unterstützte Plattformen
Textdateien sdf Nein Nein - Alle
Im Speicher memds Nein Nein - Alle
DBase tDbf Nein Nein III+, IV, VII Alle
FoxPro tDbf Nein Nein - Alle
SQLite SQLite Ja Nein - -
MySQL MySQL Ja Ja 3 - 4.0 i386: Linux, Win32
Firebird IBase Ja Ja 1 - 1.5 i386: Linux, Win32
PostgreSQL postgres Ja Ja 6.6 - 8 i386: Linux, Win32
ODBC ODBC Ja Depends - i386: Win32
Interbase IBase Ja Ja 4 - 6 i386: Linux, Win32
Oracle Oracle Ja Ja - -

Weitere Informationen zu Lazarus und Datenbanken

Unterschiede zu Delphi

Der vielleicht wichtigste Vorteil von Lazarus gegenüber Delphi ist die Plattformunabhängigkeit. Das bedeutet auf der anderen Seite, daß es für die Windows-spezifischen Teile bei Delphi (z.B. die BDE) keine direkten Entsprechungen bei Lazarus gibt. Gleiches gilt für die meisten Reporting-Werkzeuge. Bei der Konvertierung eines Delphiprogramms nach Lazarus sollte man auf die verschiedenen Dateisysteme achten, wenn das Programm auf allen von Lazarus unterstützten Plattformen laufen soll. Als Beispiel möchte ich nur die unterschiedlichen Trennzeichen im Pfadnamen ( \ bzw. / ) nennen.

In Lazarus enthaltene Datenbank-Packages

sqldblaz.lpk

Dieses Package bietet Zugriff auf verschiedene Datenbanken (z.B. MySQL oder Interbase/Firebird). Das Package wird standardmäßig mit Lazarus installiert. Die Komponenten befinden sich auf der 'SQLdb' Seite in der Komponentenpalette.

dbflaz.lpk

Dieses Package bietet Zugriff auf dBase und FoxPro Datenbanken. Weitere Informationen bietet das Lazarus TDbf Tutorial. Das Package wird standardmäßig mit Lazarus installiert. Die Komponente TDbf befindet sich auf der 'Data Access' Seite in der Komponentenpalette.

interbaselaz.lpk

Dieses Package bietet Zugriff auf Interbase und Firebird Datenbanken. Es ist den Komponenten bei Delphi nachempfunden, aber bei weitem nicht so umfangreich (enthält nur 3 Komponenten: TIBDatabase, TIBTransaction, TIBQuery). Außerdem erlauben diese Komponenten nur einen Lesezugriff. Das Package muß manuell installiert werden. Die Komponenten befinden sich dann auf der 'Interbase' Seite in der Komponentenpalette.

sqlitelaz.lpk

Dieses Package bietet Zugriff auf SQLite Datenbanken. Weitere Informationen sind im Lazarus Database Tutorial zu finden.

sdflaz.lpk

Das Package wird standardmäßig mit Lazarus installiert. Die Komponente TSdfDataSet befindet sich auf der 'Data Access' Seite in der Komponentenpalette.

Externe Komponenten/Bibliotheken

Zeos Bibliothek

Diese Bibliothek bietet Zugriff auf verschiedene Datenbanken. Informationen zum Zusammenspiel von Zeos und Lazarus finden sie im Zeos Tutorial.

TPSQL

Diese Komponenten bieten Zugriff auf PostgreSQL Datenbanken. Weitere Informationen finden sie auf dieser Seite.

FIBL

Diese Komponenten bieten Zugriff auf Interbase und Firebird Datenbanken. Die Homepage ist [1].

LazReport

Die Homepage für den Reportgenerator ist [2].