Erste Schritte mit Zeos und SQLite3: "SQL Error"
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Erste Schritte mit Zeos und SQLite3: "SQL Error"
Hallo,
ich versuche mich gerade in Zeos einzuarbeiten, um eine SQLite3-Datenbank zu verwenden.
Dabei gehe ich, wie im Tutorial (http://wiki.lazarus.freepascal.org/Zeos ... _Anwendung) beschrieben vor:
1) Einfügen einer TZConnection
2) Setzen von Protocol auf "sqlite-3"
3) Setzen von Database auf meine sqlite-Datenbankdatei
Wenn ich nun, wie im Tutorial beschrieben, die Eigenschaft "Connected" auf True setze, so poppt sofort eine Fehlermeldung hoch: "SQL Error: library routine called out of sequence".
Mache ich irgendwas falsch?!
Gruß
Markus
ich versuche mich gerade in Zeos einzuarbeiten, um eine SQLite3-Datenbank zu verwenden.
Dabei gehe ich, wie im Tutorial (http://wiki.lazarus.freepascal.org/Zeos ... _Anwendung) beschrieben vor:
1) Einfügen einer TZConnection
2) Setzen von Protocol auf "sqlite-3"
3) Setzen von Database auf meine sqlite-Datenbankdatei
Wenn ich nun, wie im Tutorial beschrieben, die Eigenschaft "Connected" auf True setze, so poppt sofort eine Fehlermeldung hoch: "SQL Error: library routine called out of sequence".
Mache ich irgendwas falsch?!
Gruß
Markus
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Keine Ahnung.markusd112 hat geschrieben: Mache ich irgendwas falsch?!
Aber Googeln könntest du bestimmt mal: http://lmgtfy.com/?q=SQL+Error%3A+libra ... f+sequence" onclick="window.open(this.href);return false;
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Das habe ich schon intensiv getan, aber leider keine Lösung gefunden. Deshalb ein Versuch hier....
Gruß
Markus
Gruß
Markus
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Die SQLite DLL muss im gleichen Verzeichnis der EXE oder in einem der Suchpfade drin stehen (C:\Windows\System32).
Diese DLL muss von SQLite.org geladen werden.
Bei Linux sollte die passende .so Datei schon vorhanden sein.
Diese DLL muss von SQLite.org geladen werden.
Bei Linux sollte die passende .so Datei schon vorhanden sein.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Hallo,
Danke für den Tipp. Da werde ich nochmal nachsehen, wobei ich Mac OS X verwende, so dass es genauso wie bei Linux sein sollte...
Gruß
Markus
Danke für den Tipp. Da werde ich nochmal nachsehen, wobei ich Mac OS X verwende, so dass es genauso wie bei Linux sein sollte...
Gruß
Markus
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Du solltest auch das aktuelle Zeos aus dem SVN nehmen und nicht die V6.6.6
Da gibt es noch einen Parameter "LibraryLocation" im TZConnection und man kann somit den Pfad/Dateiname der DLL angeben.
Hier die Infos:
http://www.lazarusforum.de/viewtopic.ph ... 706#p53706" onclick="window.open(this.href);return false;
Da gibt es noch einen Parameter "LibraryLocation" im TZConnection und man kann somit den Pfad/Dateiname der DLL angeben.
Hier die Infos:
http://www.lazarusforum.de/viewtopic.ph ... 706#p53706" onclick="window.open(this.href);return false;
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Hallo,
so, konnte jetzt nochmal alles prüfen: ich hatte bereits per svn eine aktuelle Version aus dem Repository heruntergeladen und verwende bereits die Version 7.0 von Zeos, daran kann es also nicht liegen.
In der Eigenschaft "LibraryLocation" habe ich jetzt auch nochmal händisch den Pfad zur .so-Datei hinterlegt. Das Problem tritt aber trotzdem weiterhin auf: sobald ich im Object-Inspector die Option "Connected" auf True setze, kommt die genannte Fehlermeldung.
Es ist zum Haare raufen...
Gruß
Markus
so, konnte jetzt nochmal alles prüfen: ich hatte bereits per svn eine aktuelle Version aus dem Repository heruntergeladen und verwende bereits die Version 7.0 von Zeos, daran kann es also nicht liegen.
In der Eigenschaft "LibraryLocation" habe ich jetzt auch nochmal händisch den Pfad zur .so-Datei hinterlegt. Das Problem tritt aber trotzdem weiterhin auf: sobald ich im Object-Inspector die Option "Connected" auf True setze, kommt die genannte Fehlermeldung.
Es ist zum Haare raufen...
Gruß
Markus
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Hat die .so die gleiche Bit-Anzahl wie (32/64) wie das installierte Lazarus?
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Hallo,
die .so liefert mit file:
file auf lazarus liefert:
Daran scheint es nicht zu liegen...
Gruß
Markus
die .so liefert mit file:
Code: Alles auswählen
sqlite-3.3.8.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
Code: Alles auswählen
lazarus: Mach-O executable i386
Gruß
Markus
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Schreibe mal bei
TZConnection.HostName := 'DummyHost';
rein.
TZConnection.HostName := 'DummyHost';
rein.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Bingo!! Das war's: ich habe als Hostname "localhost" eingetragen und jetzt geht's!
Danke für den Tipp! Ich werde das im Wiki in dem Tutorial noch als Hinweis ergänzen.
Tausend Dank für die Hilfe!!!
Viele Grüße
Markus
Danke für den Tipp! Ich werde das im Wiki in dem Tutorial noch als Hinweis ergänzen.
Tausend Dank für die Hilfe!!!
Viele Grüße
Markus
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Ist noch ein Bug Zeos.
Intern werden bei Zeos die einzelnen Parameter einer Datenbankverbindung (weil es gib viele) mit "/" getrennt. Unglücklicherweise verwendet zufällig Linux ebenfalls ein "/" als Pfadtrenner. Somit wurde Dein erstes "/" als Hostname interpretiert und alles danach als Datenbankpfad/Datei und der konnte somit die DB nicht mehr finden.
Es ist somit egal was als Hostname drin steht, denn SQLite braucht das nicht. Nur wichtig, dass mindestens ein Buchstabe angegeben wurde.
Das zu ändern ist in Zeos ein größerer Aufwand, da alle DB Treiber entsprechend geändert werden müssen. Der Bug ist den Zeos-Entwicklern seit ein paar Wochen erst bekannt, der betrifft nur Linux.
Intern werden bei Zeos die einzelnen Parameter einer Datenbankverbindung (weil es gib viele) mit "/" getrennt. Unglücklicherweise verwendet zufällig Linux ebenfalls ein "/" als Pfadtrenner. Somit wurde Dein erstes "/" als Hostname interpretiert und alles danach als Datenbankpfad/Datei und der konnte somit die DB nicht mehr finden.

Es ist somit egal was als Hostname drin steht, denn SQLite braucht das nicht. Nur wichtig, dass mindestens ein Buchstabe angegeben wurde.
Das zu ändern ist in Zeos ein größerer Aufwand, da alle DB Treiber entsprechend geändert werden müssen. Der Bug ist den Zeos-Entwicklern seit ein paar Wochen erst bekannt, der betrifft nur Linux.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 24
- Registriert: Do 30. Aug 2012, 16:57
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
Hallo,
alles klar, Danke für die Erklärung und die Hilfe, jetzt klappt es. Im Wiki habe ich einen Hinweis ergänzt, damit andere DAUs wie ich nicht erneut darüber stolpern.
Ich habe schon an mir gezweifelt, da ja zumindest so grundlegende Dinge, die in einem Einsteiger Tutorial beschrieben sind, ohne größere Probleme laufen sollten. Und wenn dann noch so "hilfreiche" Beiträge von anderen hier kommen, ich könnte doch mal googlen, kommen Zweifel, scheint aber mehr ein Standard-Abwehr-Reflex hier im Forum zu sein, vermutlich weil viele erstmal Posten, anstatt selbst zu suchen
Aber nochmal ein paar andere Fragen zu Zeos:
- mir ist aufgefallen, dass in dem Lib-Verzeichnis von Zeos nur für sqlite3 entsprechende .so-Bibliotheken dabei sind. Bei z.B. MySQL5 sind nur .dll-Dateien dabei (wahrscheinlich für Windows). Sind diese .dll-Libs auch unter Linux/Mac OSX nutzbar?
- kann ich irgendwie feststellen, welche Lib er einbindet und wo er sie gefunden hat?
- wo kommen diese Bibliotheken eigentlich her? So wie ich es sehe, werden sie nicht beim Bauen von ZComponents mitcompiliert, sondern stehen als fertige Binaries im Repository. Wenn ich sie mir selber kompilieren möchte, wie mache ich das?
- ich vermisse eine Doku von Zeos. Es gibt zwar einige mehr oder minder umfangreiche Tutorials, aber eine richtige Doku scheint es nicht zu geben? Auf der Homepage des Projektes und auf SF konnte ich zumindest bisher nichts finden... Oder bin ich blind und brauche doch mal eine Nachhilfe im Googlen?
- ich hatte versucht, mich im offiziellen Zeos-Forum zu registrieren (http://zeos.firmos.at" onclick="window.open(this.href);return false;), aber trotz mehrfacher Versuche bekomme ich keinen Bestätigungslink zugeschickt... Haben die evtl. ein technisches Problem? Ich denke, gerade die speziellen Zeos-Themen sind dort besser aufgehoben als hier im Forum..
Besten Dank und viele Grüße
Markus
alles klar, Danke für die Erklärung und die Hilfe, jetzt klappt es. Im Wiki habe ich einen Hinweis ergänzt, damit andere DAUs wie ich nicht erneut darüber stolpern.

Ich habe schon an mir gezweifelt, da ja zumindest so grundlegende Dinge, die in einem Einsteiger Tutorial beschrieben sind, ohne größere Probleme laufen sollten. Und wenn dann noch so "hilfreiche" Beiträge von anderen hier kommen, ich könnte doch mal googlen, kommen Zweifel, scheint aber mehr ein Standard-Abwehr-Reflex hier im Forum zu sein, vermutlich weil viele erstmal Posten, anstatt selbst zu suchen

Aber nochmal ein paar andere Fragen zu Zeos:
- mir ist aufgefallen, dass in dem Lib-Verzeichnis von Zeos nur für sqlite3 entsprechende .so-Bibliotheken dabei sind. Bei z.B. MySQL5 sind nur .dll-Dateien dabei (wahrscheinlich für Windows). Sind diese .dll-Libs auch unter Linux/Mac OSX nutzbar?
- kann ich irgendwie feststellen, welche Lib er einbindet und wo er sie gefunden hat?
- wo kommen diese Bibliotheken eigentlich her? So wie ich es sehe, werden sie nicht beim Bauen von ZComponents mitcompiliert, sondern stehen als fertige Binaries im Repository. Wenn ich sie mir selber kompilieren möchte, wie mache ich das?
- ich vermisse eine Doku von Zeos. Es gibt zwar einige mehr oder minder umfangreiche Tutorials, aber eine richtige Doku scheint es nicht zu geben? Auf der Homepage des Projektes und auf SF konnte ich zumindest bisher nichts finden... Oder bin ich blind und brauche doch mal eine Nachhilfe im Googlen?

- ich hatte versucht, mich im offiziellen Zeos-Forum zu registrieren (http://zeos.firmos.at" onclick="window.open(this.href);return false;), aber trotz mehrfacher Versuche bekomme ich keinen Bestätigungslink zugeschickt... Haben die evtl. ein technisches Problem? Ich denke, gerade die speziellen Zeos-Themen sind dort besser aufgehoben als hier im Forum..
Besten Dank und viele Grüße
Markus
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
1) Die Zeos LIB Order dienen nur zur Entwicklung von Zeos. Die jeweilige .so Datei sollte z.B. mit "apt-get -install libmysqlclient" oder so ähnlich vom Linux-Distri installiert werden. Damit landen die automatisch unter /usr/lib oder /usr/lib64
2) Bei Linux gibt es Suchpfade und da sucht Zeos automatisch (/usr/lib), bzw. der Befehl "LoadLibrary" macht das. Wenn man ich nicht sicher ist muss man LibraryLocation manuell setzen. Unter Linux haben die Libraries meist irgendwelche zusätze wie z.b. "libmysql.so.18" und dann bei solchen Zusätzen findet das Zeos natürlich nicht mehr.
Im TZConnection.BeforeConnect Event kann man das ausrechnen und die LibraryLocation noch kurz vor dem Öffnen der DB setzen
3) Die Bibliotheken kommen von den jeweiligen Herstellern, wie z.B. http://www.sqlite.org" onclick="window.open(this.href);return false;
4) So ist es leider meist bei Freeware, Doku = Mangelware. Wenn jemand dafür was zahlen würde, dann würde es sich auch einer für eine Doku finden. Das letzte halbe Jahr haben sich fähige Leute hin gesetzt und Zeos auf einen wirklich guten Stand gebracht. Ich bin froh so eine gute Komponente zu bekommen, das auch noch kostenlos und da muss ich als Doku den Quellcode her nehmen. Wenn jemand eine gute Kompo mit Doku sucht, dann ist das kommerziell und kostet richtig viel Geld (und ist warscheinlich nicht so leistungsfähig wie die Zeos Kompo).
5) Weiß nicht.
2) Bei Linux gibt es Suchpfade und da sucht Zeos automatisch (/usr/lib), bzw. der Befehl "LoadLibrary" macht das. Wenn man ich nicht sicher ist muss man LibraryLocation manuell setzen. Unter Linux haben die Libraries meist irgendwelche zusätze wie z.b. "libmysql.so.18" und dann bei solchen Zusätzen findet das Zeos natürlich nicht mehr.
Im TZConnection.BeforeConnect Event kann man das ausrechnen und die LibraryLocation noch kurz vor dem Öffnen der DB setzen
3) Die Bibliotheken kommen von den jeweiligen Herstellern, wie z.B. http://www.sqlite.org" onclick="window.open(this.href);return false;
4) So ist es leider meist bei Freeware, Doku = Mangelware. Wenn jemand dafür was zahlen würde, dann würde es sich auch einer für eine Doku finden. Das letzte halbe Jahr haben sich fähige Leute hin gesetzt und Zeos auf einen wirklich guten Stand gebracht. Ich bin froh so eine gute Komponente zu bekommen, das auch noch kostenlos und da muss ich als Doku den Quellcode her nehmen. Wenn jemand eine gute Kompo mit Doku sucht, dann ist das kommerziell und kostet richtig viel Geld (und ist warscheinlich nicht so leistungsfähig wie die Zeos Kompo).
5) Weiß nicht.
EleLa - Elektronik Lagerverwaltung - www.elela.de
-
- Beiträge: 1579
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
- CPU-Target: 32/64Bit
Re: Erste Schritte mit Zeos und SQLite3: "SQL Error"
PS: Als Doku kann man auch eine der viele anderen Tutorials über die DB Programmierung nehmen. Bei Zeos gibt es nur ein paar Dinge mehr, bzw. manches ist etwas einfacher, aber im Grunde sind alle gleich.
EleLa - Elektronik Lagerverwaltung - www.elela.de