Memofelder werden in SELECT Statement ignoriert

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Memofelder werden in SELECT Statement ignoriert

Beitrag von KOBOLD Messring GmbH »

Habe folgendes Problem:
Eine Abfrage auf einen MySQL-Server (Version 4.1) funktioniert mit TMySQL41Connection, TSQLConnection und TSQLQuery problemlos solange nur numerische und VarChar-Felder abgefragt werden. Ab dem Moment, wo ich ein MEMO-Feld (als Longtext in der MySQL-Datenbank) mit in das SELECT-Statement nehme, wird dies ignoriert, als ob es dort nicht stünde. Mit FieldByName heisst es immer "Feldname existiert nicht" und mit Fields[5] (z.B. an der Stelle 5), heisst es dann "Index out of bounce".
¿¿¿Wer kann helfen???

knight
Beiträge: 802
Registriert: Mi 13. Sep 2006, 22:30

Beitrag von knight »

Ich würde vorschlagen, den entsprechenden Ausschnitt aus deinem Quelltext hier mal einzustellen (um Syntaxfehler und dergleichen auszuschliessen).

knight

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
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: Memofelder werden in SELECT Statement ignoriert

Beitrag von af0815 »

KOBOLD Messring GmbH hat geschrieben:Ab dem Moment, wo ich ein MEMO-Feld (als Longtext in der MySQL-Datenbank) mit in das SELECT-Statement nehme, wird dies ignoriert, als ob es dort nicht stünde. Mit FieldByName heisst es immer "Feldname existiert nicht" und mit Fields[5] (z.B. an der Stelle 5), heisst es dann "Index out of bounce".
¿¿¿Wer kann helfen???


Ich kann es mit MySQL 5.x und Lazarus 0.9.23 SVN 11835 mit FPC 2.1.5 nicht nachvollziehen.

Das Longtextfeld wird im Grid als Blob gekennzeichnet. Zumindest über die TSQLQuery aus dem sqldb Paket geht es.

Eine Vermutung meinerseits: Der Datentyp ist nocht nicht (richtig) implementiert (Bei älteren Versionen - wie stable). Ich habe bemerkt, das sich da seit der letzten Stable Version (FPC & Lazarus) einiges (zum besseren) geändert hat.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

ralli
Beiträge: 374
Registriert: Mi 13. Sep 2006, 15:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Hagen a.T.W.
Kontaktdaten:

Beitrag von ralli »

medium und longtext ist nocht nicht implementiert. Das funktioniert definitiv noch nicht. Ich habe mir geholfen, indem ich den Datentyp varchar genommen habe. Der ist ab mysql Version 5.01 aufgebohrt von varchar(255) auf varchar(65535). Somit lassen sich auch einige Seiten Text problemlos darstellen. Und die Version 5.x zu installieren, ist ja kein Problem.

ralli

schnullerbacke
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

Beitrag von schnullerbacke »

Im Zweifel die zeosdbo unter "Links" holen und die verwenden, da klappt das.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Beitrag von KOBOLD Messring GmbH »

¡¡ VIELEN DANK !!
¡¡ MUCHISIMAS GRACIAS !!
an alle, mit den ZEOSDBO funktioniert es.
Zu ralli wollte ich noch sagen, dass ich leider nicht auf MySQL 5 updaten kann und ich kann auch nicht die Datenbankstruktur ändern (die ist vom Herrn Direktor des Unternehmens so gesetzt...), ich muss also nehmen was da ist.
Aber mit den zeosdbo geht es AsString wunderbar, einschliesslich den Zeilenumbrüchen, die im LongText in der Datenbank stehen.
Anmerkung zum lazarus-WIKI zeos tutorial/de:
die Bugfixes, die da unter Anmerkungen stehen sind wohl nicht mehr notwendig, lediglich die Änderung auf alle-Dateinamen-klein-geschrieben war notwendig (aber mit krename super einfach).
Nochmals vielen Dank an alle

Antworten