Datenbanken in Lazarus
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Datenbanken in Lazarus
Hallo an Alle,
leider muß ich mal wieder eine Frage stellen. Ich habe mir jetzt das Buch 'LAZARUS Arbeiten mit IDE und Klassenbibliothek' gekauft, weil ich eine Anwendung mit Datenbanken programmieren muß. Habe vorher mit Delphi 7 und der BDE programmiert, mich aber belehren lassen: BDE ist out. In meinem neuen Handbuch ist viel beschrieben, auch über Datenbanken. Aber so ein richtiger Wegweiser oder eine Schritt für Schritt-Anleitung kann ich leider nirgendwo finden. Weiß vielleicht jemand von Euch, wo man sowas nachlesen oder bekommen kann ?
Schönen Tag noch,
Hercules.
leider muß ich mal wieder eine Frage stellen. Ich habe mir jetzt das Buch 'LAZARUS Arbeiten mit IDE und Klassenbibliothek' gekauft, weil ich eine Anwendung mit Datenbanken programmieren muß. Habe vorher mit Delphi 7 und der BDE programmiert, mich aber belehren lassen: BDE ist out. In meinem neuen Handbuch ist viel beschrieben, auch über Datenbanken. Aber so ein richtiger Wegweiser oder eine Schritt für Schritt-Anleitung kann ich leider nirgendwo finden. Weiß vielleicht jemand von Euch, wo man sowas nachlesen oder bekommen kann ?
Schönen Tag noch,
Hercules.
-
- Beiträge: 359
- Registriert: Mi 27. Mai 2009, 20:54
- OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
- CPU-Target: x86
- Wohnort: Cottbus
Re: Datenbanken in Lazarus
Nun, ich muss zugeben das ich auch keine sehr gute Anleitung zu diesem Thema kenne.
Aber ich versuche es dir mal zu beschreiben:
Vorab: ich gehe davon aus das du deine Datenbank bereits Installiert hast.
Wenn du das noch nicht hast und auch nicht weist welche du nehmen sollst, kann ich dir MySQL empfehlen.
Nun, zuerst brauchen wir eine Verbindung zu deiner Datenbank.
Dazu brauchst du das Lazarus-Package "SQLDBLaz".
Dieses kannst du Installieren über "Package → Installierte Packages einrichten".
Dann Installieren und Lazarus neu erstellen lassen ("Speichern und IDE recompilieren" klicken).
Nun solltest du den Reiter "SQLdb" in der Komponentenpalette stehen haben.
Aus diesem Packst du dir nun die Komponenten "TSQLQuery", "TMySQL50Connection" (bei einer anderen Datenbank als MySQL5.0 etwas anderes) und "TSQLTransaction" auf dein Formular.
Jetzt stellen wir die Connection ein:
DatabaseName auf den Namen der Datenbank,
HostName den Namen des Hostes (wenn die Datenbank bei dir selbst auf dem Rechner liegt einfach "localhost")
bei Password, UserName und Port jeweils das was der Name sagt.
Bei "Transaction" wählst du die TSQLTransaction aus.
Jetzt kommt die Transaction dran:
Bei Database die TMySQL50Connection auswählen.
Nun nur noch die Query:
Bei Database und Transaction unsere jeweiligen Komponenten auswählen und gut ist.
Nun kannst du OnCreate der Form ein MySQL50Connection.Connect; schreiben und wir haben eine Datenbankverbindung.
Deine Anfragen an die Datenbank geschehen über die Query.
Also z.B. so:
Ich hoffe ich konnte dir damit etwas weiter helfen.
Aber ich versuche es dir mal zu beschreiben:
Vorab: ich gehe davon aus das du deine Datenbank bereits Installiert hast.
Wenn du das noch nicht hast und auch nicht weist welche du nehmen sollst, kann ich dir MySQL empfehlen.
Nun, zuerst brauchen wir eine Verbindung zu deiner Datenbank.
Dazu brauchst du das Lazarus-Package "SQLDBLaz".
Dieses kannst du Installieren über "Package → Installierte Packages einrichten".
Dann Installieren und Lazarus neu erstellen lassen ("Speichern und IDE recompilieren" klicken).
Nun solltest du den Reiter "SQLdb" in der Komponentenpalette stehen haben.
Aus diesem Packst du dir nun die Komponenten "TSQLQuery", "TMySQL50Connection" (bei einer anderen Datenbank als MySQL5.0 etwas anderes) und "TSQLTransaction" auf dein Formular.
Jetzt stellen wir die Connection ein:
DatabaseName auf den Namen der Datenbank,
HostName den Namen des Hostes (wenn die Datenbank bei dir selbst auf dem Rechner liegt einfach "localhost")
bei Password, UserName und Port jeweils das was der Name sagt.
Bei "Transaction" wählst du die TSQLTransaction aus.
Jetzt kommt die Transaction dran:
Bei Database die TMySQL50Connection auswählen.
Nun nur noch die Query:
Bei Database und Transaction unsere jeweiligen Komponenten auswählen und gut ist.
Nun kannst du OnCreate der Form ein MySQL50Connection.Connect; schreiben und wir haben eine Datenbankverbindung.
Deine Anfragen an die Datenbank geschehen über die Query.
Also z.B. so:
Code: Alles auswählen
//Falls noch die Verbindung Offen ist, diese schließen...
SQLQuery1.Close;
//Letzte Anweisung löschen:
SQLQuery1.SQL.Clear;
//Neue Anfrage:
SQLQuery1.SQL.Add('SELECT * FROM WasAuchImmer WHERE Feld1=''foo''');
//Anfrage abschicken:
SQLQuery1.Open;
//wenn keine Daten zurückkommen braucht es statt des Open dieses:
//SQLQuery1.ExecSQL;
Ich hoffe ich konnte dir damit etwas weiter helfen.
- af0815
- Lazarusforum e. V.
- Beiträge: 6874
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Datenbanken in Lazarus
Such mal nach LazInfos/LazSnippets und für den Rest kannst du ja auch mal FragenHercules hat geschrieben:Aber so ein richtiger Wegweiser oder eine Schritt für Schritt-Anleitung kann ich leider nirgendwo finden. Weiß vielleicht jemand von Euch, wo man sowas nachlesen oder bekommen kann ?

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Datenbanken in Lazarus
Hallo Teekeks, hallo af0815, vielen Dank für Eure schnellen Antworten. Das hört sich ja gut an, werd mal beides durchleuchten.
Ich sag Euch dann, was draus geworden ist.
Vielen Dank,
Hercules.
Ich sag Euch dann, was draus geworden ist.
Vielen Dank,
Hercules.
Re: Datenbanken in Lazarus
Moin, Moin,
ich verwende Postgres.
Sag mal Teekeks, er soll eine Anwendung erstellen und du rätst zu MySQL? MySQL ist im Vergleich zu Postgres kommerziell, kostet Lizenzen. Lest ihr keine Lizenz Agreements?
Baba.
Für den Zugriff solltest du lieber die ZEOS-Komponenten verwenden, die funktionieren auch richtig. Hier ein paar Links
http://lazarus.intern.es/zeos_komponenten_lazarus.html
http://zeos.firmos.at/
http://wiki.lazarus.freepascal.org/Zeos_tutorial/de
und wenn du das hier durchgearbeitet hast, basiert leider auf MySQL, sollten kaum noch Fragen offen sein.
http://wiki.lazarus.freepascal.org/Laza ... utorial/de
http://wiki.lazarus.freepascal.org/Databases/de
ich verwende Postgres.
Sag mal Teekeks, er soll eine Anwendung erstellen und du rätst zu MySQL? MySQL ist im Vergleich zu Postgres kommerziell, kostet Lizenzen. Lest ihr keine Lizenz Agreements?
Baba.
Für den Zugriff solltest du lieber die ZEOS-Komponenten verwenden, die funktionieren auch richtig. Hier ein paar Links
http://lazarus.intern.es/zeos_komponenten_lazarus.html
http://zeos.firmos.at/
http://wiki.lazarus.freepascal.org/Zeos_tutorial/de
und wenn du das hier durchgearbeitet hast, basiert leider auf MySQL, sollten kaum noch Fragen offen sein.
http://wiki.lazarus.freepascal.org/Laza ... utorial/de
http://wiki.lazarus.freepascal.org/Databases/de
-
- Beiträge: 489
- Registriert: Sa 5. Apr 2008, 09:37
- OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
- CPU-Target: 32Bit /64 Bit
- Wohnort: Nähe Freiburg i.Br.
Re: Datenbanken in Lazarus
dann will ich mal noch firebird in die Diskusion werfen 
Ich halte firebird und die Zeos-Compopnenten für eine gelungene Kombination.
Gruss KHH

Ich halte firebird und die Zeos-Compopnenten für eine gelungene Kombination.
Gruss KHH
-
- Beiträge: 359
- Registriert: Mi 27. Mai 2009, 20:54
- OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
- CPU-Target: x86
- Wohnort: Cottbus
Re: Datenbanken in Lazarus
@Baba:
Ja, ich gebe zu das ich einfach nur zu faul war zu beschreiben wie man die Zeos Installiert (ich weiß nicht mehr wie ich das gemacht hatte) und habe deswegen die Standard-Komponenten beschrieben.
Ist ja auch nicht wirklich ein Unterschied...
Zu MySQL: Seit wann kostet das Lizenzgebühren?
Kannst du mir mal hier nen Link schicken wo das drin steht?
Gut, mittlerweile gehe ich auch mehr zu Firebird über (das kann einfach deutlich mehr...
)
EDIT:
Laut Wikipedia ist MySQL folgendes:
Ja, ich gebe zu das ich einfach nur zu faul war zu beschreiben wie man die Zeos Installiert (ich weiß nicht mehr wie ich das gemacht hatte) und habe deswegen die Standard-Komponenten beschrieben.
Ist ja auch nicht wirklich ein Unterschied...
Zu MySQL: Seit wann kostet das Lizenzgebühren?

Kannst du mir mal hier nen Link schicken wo das drin steht?
Gut, mittlerweile gehe ich auch mehr zu Firebird über (das kann einfach deutlich mehr...

EDIT:
Laut Wikipedia ist MySQL folgendes:
Und ist (in der nicht-Enterpriseversion) kostenlos auch bei Kommerziellen Einsätzen zu nutzen.Es ist als Open-Source-Software sowie als kommerzielle Enterpriseversion für verschiedene Betriebssysteme verfügbar und bildet die Grundlage für viele dynamische Webauftritte.
Zuletzt geändert von Teekeks am Mi 20. Okt 2010, 22:23, insgesamt 2-mal geändert.
- af0815
- Lazarusforum e. V.
- Beiträge: 6874
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Datenbanken in Lazarus
Wenn wer mit der BDE gearbeitet hat, so ist er verwöhnt
Die BDE hat desktopdatenbanken recht gut gekapselt. Ich habe micht auch lange mit der BDE befasst, bevor ich auf ADO umgestiegen bin in Delphi.
Wenn die BDE aureichend war, so muß man Fragen welche DB im Hintergrund verwendet wurde. Mit ZEOS wird der Umstieg nicht so schwierig sein. Man kann ZEOS als BDE Ersatz sehen.
Die wahl der DB hängt natürlich von den Erfordernissen ab. Es gibt genüged DBs sowohl Desktop als auch Server basierend. Was Hercules wirklich benötigt, hat er ja noch nicht definiert. Zum Testen ist vieles geeignet

Wenn die BDE aureichend war, so muß man Fragen welche DB im Hintergrund verwendet wurde. Mit ZEOS wird der Umstieg nicht so schwierig sein. Man kann ZEOS als BDE Ersatz sehen.
Die wahl der DB hängt natürlich von den Erfordernissen ab. Es gibt genüged DBs sowohl Desktop als auch Server basierend. Was Hercules wirklich benötigt, hat er ja noch nicht definiert. Zum Testen ist vieles geeignet

Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Datenbanken in Lazarus
Schon immer.Teekeks hat geschrieben:Zu MySQL: Seit wann kostet das Lizenzgebühren?.

MySQL ist nur lizenzfrei wenn es im Web benutzt wird. Wer aber einen eigenen SQL-Server, z.B. in einem Unternehmen aufsetzt, muss sehr teure Lizenzen kaufen

Firebird und Postgres sind FREE.

Baba.
Schau mal, hier wurde darüber diskutiert.
http://www.issociate.de/board/post/4632 ... izenz.html
Zuletzt geändert von baba am Do 21. Okt 2010, 02:47, insgesamt 1-mal geändert.
-
- Beiträge: 359
- Registriert: Mi 27. Mai 2009, 20:54
- OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
- CPU-Target: x86
- Wohnort: Cottbus
Re: Datenbanken in Lazarus
Laut http://www.mysql.de/downloads/mysql/ aber MySQL auch, denn:

Auch wenn ich jetzt vl. als kleinscheißer gelteMySQL Software is provided under the GPL License.

Re: Datenbanken in Lazarus
Lass die Finger von. Sobald MySQL kommerziell eingesetzt wird kostest es. Ich schreibe doch kein Programm für einen Kunden, stelle es unter die GPL, gebe meinen Sourcecode dazu, nur um MySQL nutzen zu können. Firebird und Postgres sind frei, auch wenn ich meine App. verkaufe.
- af0815
- Lazarusforum e. V.
- Beiträge: 6874
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Datenbanken in Lazarus
SQLite ist auch public domain. Falls man keine Kanonen für Spatzen benötigt

Code: Alles auswählen
Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 104
- Registriert: Mi 2. Jun 2010, 17:56
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Datenbanken in Lazarus
Hallo, schönen Tag an alle.
Jetzt habt Ihr mich aber ganz schön zum Nachdenken gezwungen.
MySQL nicht so gut weil..., Firebird und Postgres....., oder doch lieber ZEOS ?!?
Was ist eigentlich mit den Komponenten, die in Lazarus bereits vorhanden sind:
Jetzt habt Ihr mich aber ganz schön zum Nachdenken gezwungen.
MySQL nicht so gut weil..., Firebird und Postgres....., oder doch lieber ZEOS ?!?
Was ist eigentlich mit den Komponenten, die in Lazarus bereits vorhanden sind:
- Dateianhänge
-
- Bild1.JPG (9.57 KiB) 3962 mal betrachtet
-
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Datenbanken in Lazarus
Noch ein wenig mehr zum nachdenken.Hercules hat geschrieben:Jetzt habt Ihr mich aber ganz schön zum Nachdenken gezwungen.

Es gibt auch noch MSEide+MSEgui:
http://developer.berlios.de/projects/mseide-msegui/
Eine dessen Spezialitäten sind gerade Datenbankanwendungen. MSEgui besitzt eine über weite Teile neu geschriebene und erweiterte Version von SQLDB.
Martin
- af0815
- Lazarusforum e. V.
- Beiträge: 6874
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Datenbanken in Lazarus
Achtung nicht die Datemnbanken selbst und die Zugriffsschicht verwechseln. ZEOS ist KEINE Datenbank sondern die Zugriffsschicht wie auch SQLdb von Lazarus/Freepascal.Hercules hat geschrieben:MySQL nicht so gut weil..., Firebird und Postgres....., oder doch lieber ZEOS ?!?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).