Datenbanken in Lazarus

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Hercules
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

Beitrag von Hercules »

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.

Teekeks
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

Beitrag von Teekeks »

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:

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.

Benutzeravatar
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

Beitrag von af0815 »

Hercules 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 ?
Such mal nach LazInfos/LazSnippets und für den Rest kannst du ja auch mal Fragen :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Hercules
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

Beitrag von Hercules »

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.

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Datenbanken in Lazarus

Beitrag von baba »

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

khh
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

Beitrag von khh »

dann will ich mal noch firebird in die Diskusion werfen ;-)
Ich halte firebird und die Zeos-Compopnenten für eine gelungene Kombination.

Gruss KHH

Teekeks
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

Beitrag von Teekeks »

@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? :shock:

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:
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.
Und ist (in der nicht-Enterpriseversion) kostenlos auch bei Kommerziellen Einsätzen zu nutzen.
Zuletzt geändert von Teekeks am Mi 20. Okt 2010, 22:23, insgesamt 2-mal geändert.

Benutzeravatar
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

Beitrag von af0815 »

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 :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Datenbanken in Lazarus

Beitrag von baba »

Teekeks hat geschrieben:Zu MySQL: Seit wann kostet das Lizenzgebühren? :shock: .
Schon immer. :evil:

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. :wink:

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.

Teekeks
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

Beitrag von Teekeks »

Laut http://www.mysql.de/downloads/mysql/ aber MySQL auch, denn:
MySQL Software is provided under the GPL License.
Auch wenn ich jetzt vl. als kleinscheißer gelte :)

baba
Beiträge: 265
Registriert: Mi 4. Apr 2007, 17:47

Re: Datenbanken in Lazarus

Beitrag von baba »

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.

Benutzeravatar
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

Beitrag von af0815 »

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).

Hercules
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

Beitrag von Hercules »

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:
Dateianhänge
Bild1.JPG
Bild1.JPG (9.57 KiB) 3962 mal betrachtet

mse
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

Beitrag von mse »

Hercules hat geschrieben:Jetzt habt Ihr mich aber ganz schön zum Nachdenken gezwungen.
Noch ein wenig mehr zum nachdenken. ;-)
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

Benutzeravatar
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

Beitrag von af0815 »

Hercules hat geschrieben:MySQL nicht so gut weil..., Firebird und Postgres....., oder doch lieber ZEOS ?!?
Achtung nicht die Datemnbanken selbst und die Zugriffsschicht verwechseln. ZEOS ist KEINE Datenbank sondern die Zugriffsschicht wie auch SQLdb von Lazarus/Freepascal.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten