Sign in Join
Wiki copytemporary

Databases/de: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Diese Seite ist noch unfertig ...
22
33## Einleitung
44
55Wie bei anderen Entwicklungssystemen auch spielt die Zusammenarbeit mit verschiedenen Datenbanken bei Lazarus eine bedeutende 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, die die Möglichkeiten von Lazarus erweitern.
66
77Diese 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. Ein Hinweis 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, dass 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.
88
99### Tabelle 1
1010
11-<table>
1211<thead>
13-<tr>
14-<th data-STYLE="background:#ffdead;"><strong>Datenbank</strong></th>
15-<th data-STYLE="background:#ffdead;"><strong>Package Name</strong></th>
16-<th data-STYLE="background:#ffdead;"><strong>Benötigt eine<br />
12+
1713Client Bibliothek?</strong></th>
18-<th data-STYLE="background:#ffdead;"><strong>Benötigt Server?</strong></th>
19-<th data-STYLE="background:#ffdead;"><strong>Unterstützte Versionen</strong></th>
20-<th data-STYLE="background:#ffdead;"><strong>Unterstützte Plattformen</strong></th>
21-</tr>
14+
2215</thead>
2316<tbody>
24-<tr>
25-<td><strong>Textdateien</strong></td>
26-<td>SDFLaz</td>
27-<td>Nein</td>
28-<td>Nein</td>
29-<td>-</td>
30-<td>Alle</td>
31-</tr>
32-<tr>
33-<td><strong>Im Speicher</strong></td>
34-<td>MemDSLaz</td>
35-<td>Nein</td>
36-<td>Nein</td>
37-<td>-</td>
38-<td>Alle</td>
39-</tr>
40-<tr>
41-<td><strong>DBase</strong></td>
42-<td>[[Lazarus Tdbf Tutorial/de|DBFLaz]]</td>
43-<td>Nein</td>
44-<td>Nein</td>
45-<td>III+, IV, VII</td>
46-<td>Alle</td>
47-</tr>
48-<tr>
49-<td><strong>FoxPro</strong></td>
50-<td>[[Lazarus Tdbf Tutorial/de|DBFLaz]]</td>
51-<td>Nein</td>
52-<td>Nein</td>
53-<td>2.0, 2.5, 3.0 (nicht vollständig)</td>
54-<td>Alle</td>
55-</tr>
56-<tr>
57-<td><strong>Paradox</strong></td>
58-<td>[[TParadoxDataSet]]</td>
59-<td>Nein</td>
60-<td>Nein</td>
61-<td>bis zu Version 7 (und höher ??)</td>
62-<td>Alle</td>
63-</tr>
64-<tr>
65-<td><a href="http://www.sqlite.org/"><strong>SQLite</strong></a></td>
66-<td>SQLite</td>
67-<td>Ja</td>
68-<td>Nein</td>
69-<td>2.x, 3.x</td>
70-<td>Alle</td>
71-</tr>
72-<tr>
73-<td><a href="http://www.mysql.com/"><strong>MySQL</strong></a></td>
74-<td>[[MySQLDatabases/de|SQLdb]]</td>
75-<td>Ja</td>
76-<td>Ja</td>
77-<td>3 - 5.5</td>
78-<td>i386: Linux, Win32</td>
79-</tr>
80-<tr>
81-<td><a href="http://www.firebirdsql.org/"><strong>Firebird</strong></a></td>
82-<td>IBase</td>
83-<td>Ja</td>
84-<td>Depends<sup>1)</sup></td>
85-<td>1 - 2.5</td>
86-<td>i386: Linux, Win32</td>
87-</tr>
88-<tr>
89-<td><a href="http://www.postgresql.org/"><strong>PostgreSQL</strong></a></td>
90-<td>SQLdb</td>
91-<td>Ja</td>
92-<td>Ja</td>
93-<td>6.6 - 8</td>
94-<td>i386: Linux, Win32</td>
95-</tr>
96-<tr>
97-<td><strong>ODBC</strong></td>
98-<td>[[ODBCConn|SQLdb]]</td>
99-<td>Ja</td>
100-<td>Depends</td>
101-<td>3.x <sup>2)</sup></td>
102-<td>i386: Linux, Win32</td>
103-</tr>
104-<tr>
105-<td><a href="http://www.embarcadero.com/products/interbase-smp"><strong>Interbase</strong></a></td>
106-<td>IBase</td>
107-<td>Ja</td>
108-<td>Ja</td>
109-<td>4 - 6</td>
110-<td>i386: Linux, Win32</td>
111-</tr>
112-<tr>
113-<td><a href="http://www.oracle.com/"><strong>Oracle</strong></a></td>
114-<td>SQLdb</td>
115-<td>Ja</td>
116-<td>Ja</td>
117-<td>-</td>
118-<td>-</td>
119-</tr>
120-<tr>
121-<td><a href="http://www.advantagedatabase.com/"><strong>Advantage</strong></a></td>
122-<td>TAdsDataSet</td>
123-<td>Ja</td>
124-<td>Nein</td>
125-<td>10.1 und höher</td>
126-<td>i386: Linux, Win32</td>
127-</tr>
17+
12818</tbody>
129-</table>
13019
13120<sup>1)</sup> Sie können eine eingebettete Version von Firebird zumindest unter Windows benutzen (möglicherweise unter Linux/OSX mit einigen Verrenkungen), oder Sie nehmen eine Server-Version unter Windows/Unix/OSX/FreeBSD/anderen von Firebird unterstützen Plattformen
13221
13322<sup>2)</sup> Diese Versionsnummer bezieht sich auf den ODBC Standard, nicht auf die Versionsnummer eines Treibers oder Treibermanagers. Es gibt ODBC 3.x Treiber für die meisten DBMS.
13423
13524## Weitere Informationen zu Lazarus und Datenbanken
13625
13726- FAQ: [[Lazarus DB Faq/de|Lazarus Datenbank FAQ]]
13827- Tutorial: [[Lazarus Database Tutorial/de|Lazarus Database Tutorial]]
13928- MySQL: [[MySQLDatabases/de|MySQLDatabases]]
14029- Firebird: [[Firebird]]
14130- ODBC: [[ODBCConn]]
14231
14332## Unterschiede zu Delphi
14433
14534Der vielleicht wichtigste Vorteil von Lazarus gegenüber Delphi ist die Plattformunabhängigkeit. Das bedeutet auf der anderen Seite, dass 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.
14635
14736## In Lazarus enthaltene Datenbank-Packages
14837
14938### sqldblaz.lpk
15039
15140Dieses Package bietet Zugriff auf verschiedene Datenbanken (z.B. MySQL oder Interbase/Firebird). Das Package wird standardmäßig mit Lazarus installiert (unter Windows). Die Komponenten (TSQLQuery, TSQLTransaction, TIBConnection, TODBCConnection, TOracleConnection, TMySQL40Connection, TMySQL41Connection, TMySQL50Connection, TPQConnection) befinden sich auf der 'SQLdb' Seite in der Komponentenpalette.
15241
15342### dbflaz.lpk
15443
15544Dieses 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.
15645
15746### sqlitelaz.lpk
15847
15948Dieses Package bietet Zugriff auf SQLite Datenbanken. Weitere Informationen sind im [[Lazarus Database Tutorial/de|Lazarus Database Tutorial]] zu finden.
16049
16150### sdflaz.lpk
16251
16352Das Package wird standardmäßig mit Lazarus installiert. Die Komponente TSdfDataSet befindet sich auf der 'Data Access' Seite in der Komponentenpalette.
16453
16554### lazreport.lpk
16655
16756Mit LazReport enthält Lazarus auch einen Reportgenerator. Dieser basiert auf FreeReport 2.32. Zum Funktionieren von LazReport muss das Package Printer4Lazarus installiert sein. (Mit Revision 11950 wurde LazReport in das Lazarus SVN Repository übernommen.)
16857
16958#### lazreportpdfexport.lpk
17059
17160Dieses Package erweitert LazReport um die Möglichkeit, einen Report auch im PDF-Format exportieren zu können.
17261
17362## Externe Komponenten / Bibliotheken
17463
17564### Zeos DataBase Objects
17665
17766Diese Komponenten bieten Zugriff auf verschiedene Datenbanken. Weitere Informationen finden sie [[ZeosDBO|hier]]. Es existiert auch ein [[Zeos tutorial/de|Zeos Tutorial]].
17867
17968### Pascal Data Objects
18069
18170Die Pascal Data Objects sind von Zeoslib abgeleitet. Es werden die mit MySQL 4.1 und 5.0 eingeführten Funktionen wie prepared statements, binding, und stored procedures von der Datenbank-API namens Pascal Data Objects unterstützt, die durch die PHP Data Objects inspiriert wurde. Der für die Verwendung dieser neuen API notwendige Code und die Dokumentation sind bei Sourceforge zu finden:
18271
18372<http://pdo.sourceforge.net>
18473
18574Jan 30, 2007: PDO hat Treiber für Firebird 1.5 und Firebird 2.0 hinzugefügt
18675
18776--Jrmarino 11:28, 13 Mar 2006 (CET)
18877
18978### TPSQL
19079
19180Diese Komponenten bieten Zugriff mittels TCP/IP auf PostgreSQL Datenbanken. Weitere Informationen finden sie auf [[TPSQL/de|dieser Seite]].
19281
19382### FIBL
19483
19584Diese Komponenten bieten Zugriff auf Interbase und Firebird Datenbanken. Die Homepage ist [<http://sourceforge.net/projects/fibl>](http://sourceforge.net/projects/fibl).
19685
19786### FBLib Firebird Library
19887
19988[FBLib](http://fblib.altervista.org/) ist eine Open Source Bibliothek (nicht datensensitiv) für direkten Zugriff auf die Firebird relationale Datenbank von Borland Delphi / Kylix, Free Pascal und Lazarus aus. Für die meisten Benutzer dürfte es gewöhnungsbedürftig sein, dass hier nicht die übliche Anbindung über TDatasource erfolgt.
20089
20190Gegenwärtig sind folgende Features enthalten:
20291
20392- Direkter Zugriff auf Firebird 1.0.x, 1.5.x und 2.x Classic oder SuperServer
20493- Multiplattform \[Win32,Gnu/Linux,FreeBSD)
20594- Automatische Auswahl der Client Bibliothek 'fbclient' oder 'gds32'
20695- Abfragen (Queries) mit Parametern
20796- Unterstützt SQL Dialekt 1/3
20897- LGPL Lizenzvertrag
20998- Extrahieren von Metadaten
21099- Simple Script Parser
211100- Nur 100-150 KB werden zur finalen EXE hinzugefügt
212101- Unterstützt BLOB Felder
213102- Export von Daten als HTML SQL Script
214103- Service manager (backup, restore, gfix...)
215104- Events Alerter
216105
217106Sie können die Dokumentation von der [Webseite](http://fblib.altervista.org/%7CFBLib) herunterladen.
218107
219108### Unified Interbase
220109
221110UIB bietet Zugriff auf Interbase, Firebird und YAFFIL Datenbanken. Die Homepage ist [www.progdigy.com](http://www.progdigy.com). Ein SVN-Repository ist verfügbar unter <https://uib.svn.sourceforge.net/svnroot/uib> .
222111
223112### TechInsite Object Persistence Framework (tiOPF)
224113
225114Nähere Informationen zu tiOPF sind auf dieser [[tiOPF/de|Seite]] zu finden.
226115
227116### Advantage TDataSet Descendant
228117
229118Der Advantage TDataSet Descendant bietet ein Mittel für Verbindungen (und Öffnen von Tabellen) mit dem Advantage Database Server. Advantage ist eine flexible, administrations-freie eingebettete Datenbank, die den Zugriff als Client/Server oder als Peer-to-peer auf die Dateiformate Clipper, FoxPro und Visual FoxPro 9 ermöglicht. Ebenso wie auf das eigene Dateiformat, das einen Migrationpfad darstellt, der es erlaubt, neuere Features zu verwenden.
230119
231120Wichtigste Features:
232121
233122- Gebührenfreier Peer-to-peer - Datenbankzugriff mit Migrationspfad zu Client/Server
234123- Multi-Platform (Clients unterstützt unter Windows und Linux, Server unterstützt unter Windows, Linux und NetWare)
235124- Unterstützt sowohl navigationalen als auch relationalen SQL-Datenbankzugriff
236125- Volltext-Suchmaschine
237126- Tabellen-, Index-, Memo- und Kommunikationsverschlüsselung
238127- Kompatibel mit den originalen TDataset-Komponenten
239128- Online-Backup
240129- Server unterstützt Replikation
241130
242131Für weitere Informationen, siehe die [Advantage Database Server](http://www.advantagedatabase.com) Website.
243132
244133## Gängige Stolperfallen für Einsteiger / Hinweise zur Fehlersuche
245134
246135### Fehlermeldung "Operation cannot be performed in an inactive dataset" bei Nachschlagefeldern
247136
248137- Man stelle zunächst sicher, daß das Unit der DataModule vor der des Anwendungsformulars aktiviert wird. Hierzu editiert man die **projectX.lpr** und bringt die Create-Zeilen in passende Reihenfolge:
249138
250139`begin`\
251140` RequireDerivedFormResource:=True;`\
252141` Application.Initialize;`\
253142` Application.CreateForm(TDataModule1, DataModule1); //Erst das DataModule!`\
254143` Application.CreateForm(TForm1, Form1);`\
255144` Application.Run;`\
256145`end.`\
257146`                     `
258147
259148- Das Problem kann immer noch auftreten, falls das Dataset der Haupttabelle vor dem Datset der Nachschlagetabelle aktiviert wird. Es ließe sich auf "visuelle" Weise nur verhindern, wenn der Designer eine Möglichkeit böte, die **Erstellungsreihenfolge ("Creation Order")** der Komponenten zu definieren. Anders als Delphi bietet Lazarus derzeit (Stand 2017-02) diese Möglichkeit noch nicht.
260149
261150Abhilfe ist trotzdem einfach:
262151
263152- Vor dem Kompilieren muß man alle Connections im Designer trennen (disconnect). Damit werden auch alle Datasets implizt deaktiviert.
264153- An geeigneter Stelle \[z.B. in .DataModuleCreate des DataModuls oder bei einer nicht lokalen Datenbank noch besser in einer vorgeschalteten Loginprozedur, welche die korrekte Anmeldung und Verbindung zur Datenbank sicherstellt\] aktiviert man sie wieder, und im Anschluß lassen sich die Datasets in sinnvoller, definierter Reihenfolge aktiv schalten:
265154
266155` DataModule1.ZConInventory.Connect;`\
267156` //Aktivieren der Datasets: Lookup-Datasets zuerst!`\
268157` DataModule1.ztNachschlagetabelle.Active := True;`\
269158` DataModule1.ztHaupttabelle.Active := True;`\
270159` DataModule1.(...)`
271160
272161## Siehe auch
273162
274163- [[Lazarus DB Faq]]
275164
276165---
277166*From the Free Pascal wiki, page "Databases/de", as it stood on 2017-02-15 after a change by Arabidopsis, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
278167Category: Databases/de

Back to history