MySQL50Connector und MysqlQuery
-
- Beiträge: 28
- Registriert: Mo 29. Okt 2007, 17:03
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Regensburg
- Kontaktdaten:
MySQL50Connector und MysqlQuery
Hallo,
Ich habe ein Projekt geschrieben mit Lazarus auf WinXP. Dort funktionierte es auch wunderbar.
Habe es dann auf meine Linuxkiste kopiert und kann es dort auch compilieren. Allerdings willte der mysql41connector nicht mit der installierten libmysqlclient.
Da es für Ubuntu nur mysql5 gibt ist diese auch von mysql5.
Also habe ich den mysql41connector durch einen mysql50connector ersetzt und diesen meinen Datenbankobjekten (1 Query und ein Datasource und ein SQLTransaction Objekt) als Quelle gegeben statt dem mysql41connector.
Jetzt kann ich zwar mein Projekt starten aber sobald versucht wird die erste Abfrage auszuführen bekomme ich einen Fehler das er einen Feldnamen nicht findet. Dieser Fehler trott auf bei der Verarbeitung der von der Abfrage gelieferten Daten wo die Funktion FieldByName verwendet wird.
Ich habe herausgefunden das es wohl daran liegt das die Abfrage nicht aktiviert werden kann was aber seltsamerweise keinen Fehler wirft. Ich kann die Abfrage auch im Objektinspektir nicht mehr aktiv setzen was vorher ging. Offenbar muss es irgendeine Einstellung geben vom mysql50connector oder Parameter damit das wieder klappt.
Wer weiss rat?
Ich habe ein Projekt geschrieben mit Lazarus auf WinXP. Dort funktionierte es auch wunderbar.
Habe es dann auf meine Linuxkiste kopiert und kann es dort auch compilieren. Allerdings willte der mysql41connector nicht mit der installierten libmysqlclient.
Da es für Ubuntu nur mysql5 gibt ist diese auch von mysql5.
Also habe ich den mysql41connector durch einen mysql50connector ersetzt und diesen meinen Datenbankobjekten (1 Query und ein Datasource und ein SQLTransaction Objekt) als Quelle gegeben statt dem mysql41connector.
Jetzt kann ich zwar mein Projekt starten aber sobald versucht wird die erste Abfrage auszuführen bekomme ich einen Fehler das er einen Feldnamen nicht findet. Dieser Fehler trott auf bei der Verarbeitung der von der Abfrage gelieferten Daten wo die Funktion FieldByName verwendet wird.
Ich habe herausgefunden das es wohl daran liegt das die Abfrage nicht aktiviert werden kann was aber seltsamerweise keinen Fehler wirft. Ich kann die Abfrage auch im Objektinspektir nicht mehr aktiv setzen was vorher ging. Offenbar muss es irgendeine Einstellung geben vom mysql50connector oder Parameter damit das wieder klappt.
Wer weiss rat?
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Versuch mal einen symbolischen Link von dem mysql5.so auf den mysql41.so zu legen.
ln -s mysql5.so mysql41.so
Damit gaukelt er Lazarus vor, die alte Client-Lib zu haben. Das könnte Abhilfe schaffen. Die Lib's sollten in /usr/lib zu finden sein.
ln -s mysql5.so mysql41.so
Damit gaukelt er Lazarus vor, die alte Client-Lib zu haben. Das könnte Abhilfe schaffen. Die Lib's sollten in /usr/lib zu finden sein.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 28
- Registriert: Mo 29. Okt 2007, 17:03
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Regensburg
- Kontaktdaten:
libmysqlclient heisst immer libmysqlclient.so.irgendwas und es gibt einen symlink namens libmysqlcleint.so. Aus dem Dateinamen kann man nicht direkt auf die mysql version schliessen.
Lazarus liest demnach die Versioninfo der lib aus.
Habe mal versucht eine libmysqlclient.so von mysql 4.0 mit dem mysql40connector zu verwendet mit dem gleichen Erfolg
Woran kann das liegen?
lg
wastl
Lazarus liest demnach die Versioninfo der lib aus.
Habe mal versucht eine libmysqlclient.so von mysql 4.0 mit dem mysql40connector zu verwendet mit dem gleichen Erfolg

Woran kann das liegen?
lg
wastl
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Hast Du schonmal mit den ZEOS-Komponenten probiert?
Die arbeiten problemlos auf beiden Plattformen und sind hier unter "Links" zu finden. Die kommen mit den gängigen SQL-Servern gut zurecht und haben auch die entsprechenden Client-Libs gleich dabei.
Die arbeiten problemlos auf beiden Plattformen und sind hier unter "Links" zu finden. Die kommen mit den gängigen SQL-Servern gut zurecht und haben auch die entsprechenden Client-Libs gleich dabei.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
- af0815
- Lazarusforum e. V.
- Beiträge: 6855
- 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: MySQL50Connector und MysqlQuery
Ich habe es bei meinem Studien zu LazInfos auch schon beobachtet. Abhilfe war NUR löschen der Connection, Transaktion und Query, anschliessend erst der Port und dann die Komponenten wieder drauf. War leider nicht rational Nachvollziehbar. Wenn du die Komponenten nur zur Laufzeit erzeugst war der Effekt nicht da.wastl hat geschrieben:Hallo,
Ich habe ein Projekt geschrieben mit Lazarus auf WinXP. Dort funktionierte es auch wunderbar.
.....
Ich habe herausgefunden das es wohl daran liegt das die Abfrage nicht aktiviert werden kann was aber seltsamerweise keinen Fehler wirft. Ich kann die Abfrage auch im Objektinspektir nicht mehr aktiv setzen was vorher ging. Offenbar muss es irgendeine Einstellung geben vom mysql50connector oder Parameter damit das wieder klappt.
Wer weiss rat?
Vielleicht hilft ein veröffentlichen VOR dem Port, da irgendwo Informationen hängen bleiben, die nicht Portabel erscheinen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
-
- Beiträge: 28
- Registriert: Mo 29. Okt 2007, 17:03
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Regensburg
- Kontaktdaten:
hm 
habe nun alle Datenbank-Komponenten aus dem Projekt gelöscht. Anschliessend veröffentlicht und danach auf die Linux Maschine kopiert. Das veröffentlichte Projekt (sogar im anderen Ordner gelegt) dann dort iin Laz geöffnet und die Komponenten wieder hinzugefügt und deren Properties konfiguriert.
Ergebnis: wieder das selbe..die Mysql40connection connected zum mysqlserver aber die SQLQuery1 lässt sich nicht mehr aktivieren...
Hab ich da jetzt irgendeinen Fehler gemacht? Zumal af0815 schrieb danach sollte es funzen...
lg
wastl

habe nun alle Datenbank-Komponenten aus dem Projekt gelöscht. Anschliessend veröffentlicht und danach auf die Linux Maschine kopiert. Das veröffentlichte Projekt (sogar im anderen Ordner gelegt) dann dort iin Laz geöffnet und die Komponenten wieder hinzugefügt und deren Properties konfiguriert.
Ergebnis: wieder das selbe..die Mysql40connection connected zum mysqlserver aber die SQLQuery1 lässt sich nicht mehr aktivieren...
Hab ich da jetzt irgendeinen Fehler gemacht? Zumal af0815 schrieb danach sollte es funzen...
lg
wastl
- af0815
- Lazarusforum e. V.
- Beiträge: 6855
- 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:
Zumindest hat es bei mir so geholfen.wastl hat geschrieben: Ergebnis: wieder das selbe..die Mysql40connection connected zum mysqlserver aber die SQLQuery1 lässt sich nicht mehr aktivieren...
Hab ich da jetzt irgendeinen Fehler gemacht? Zumal af0815 schrieb danach sollte es funzen...
Die Frage für mich ist, wie stellst du fest, das die Verbindung funktioniert ? Zusätzlich: Was schreibt der MySQL ins LOG, kommt dort ein SQL-Statement überhaupt an oder gibt es vorher schon Probleme ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 28
- Registriert: Mo 29. Okt 2007, 17:03
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Regensburg
- Kontaktdaten:
laut mysql logfile auf dem Datenbankserver in dem Moment wo ich das Attribt "conected" der msql40connection auf true setze:
laut mysql logfile auf dem Datenbankserver in dem Moment wo ich versuche die SQLQuery1 zu aktivieren:
Also wird die Abfrage durchaus ausgeführt. Beim Programm bzw Lazarus kommt aber keine Ergebnismenge an. Wie gesagt mit den selben Komponenten unter Windows XP und auch dem gleichen Datenbankserver und der gleichen DB funktioniert es!
lg
wastl
Code: Alles auswählen
071030 12:49:02 3202 Connect root@cag.cronon.org ON
3202 Init DB msndb
Code: Alles auswählen
071030 12:50:47 3202 Query SELECT * FROM msns
3202 Query SHOW INDEX FROM msns
lg
wastl
- af0815
- Lazarusforum e. V.
- Beiträge: 6855
- 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:
Version Lazarus Win/Ubuntu ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
Hast Du den Port für mysql unter Ubuntu freigegeben? Wenn der durch die firewall-Einstellungen gesperrt sein sollte kann beim Client nix ankommen. Im Zweifel beim Supersever unter Ubuntu den Port gesondert eintragen. Auch wenn der Client direkt auf der Maschine vom SQL-Server läuft ist das zwingend, weil der über localhost ebenfalls über die Einstellungen läuft.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
- af0815
- Lazarusforum e. V.
- Beiträge: 6855
- 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:
Dann kann es nicht von der Version abhängen. Vor ca. 1-2 Monaten wurde gerade bei SQLdb sehr viel zum Guten geändert/gefixt.wastl hat geschrieben:Ubuntu: Lazarus 0.9.23 Beta vom 29..10.07 i386-linux-gtk
Windows: Lazarus 0.9.23 Beta vom 29.10.2007 i386-win32-win32/win64 SVN-Revision 12622
beide am gleichen Tag vom gleichen Mirror gezogen und installiert...
Das ganze schon mal mit einem minimal Beispiel (Connection, Tranaction und Query) was rein unter Linux erstellt wurde getestet ? Nur damit man es auf die Portierung oder auf generell eingrenzen kann.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).