SQLQuery zeigt Resultate immer in max. Feldlänge an

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
pschoett
Beiträge: 36
Registriert: Sa 7. Feb 2015, 11:48

SQLQuery zeigt Resultate immer in max. Feldlänge an

Beitrag von pschoett »

Lazarus 1.6

Hallo allerseits,
ich habe ein SQLQuery mit ODBC Connection auf alte Foxpro Daten. Das Resultat des Querys ergibt für alle Felder immer den Feldinhalt ergänzt um Leerzeichen in der Anzahl der verbleibenden maximalen Feldlänge.
Zum Beispiel habe ich eine Foxpro Tabelle mit Feld_A vom Typ CHAR(50) mit dem Wert 'Test' für einen Datensatz. Das Query auf diesen Datensatz ergibt das Resultat "Test...(nachfolgend 46 Leerzeichen)" und nicht nur "Test".

Warum ist das so?
Wie kann ich das umstellen, dass nur der getrimte Wert angezeigt wird?

Gruß,
Peter

Eb
Lazarusforum e. V.
Beiträge: 238
Registriert: Di 5. Feb 2008, 15:32
OS, Lazarus, FPC: Linux Mint - Laz 2.2.0
CPU-Target: 64Bit
Wohnort: Stuttgart

Re: SQLQuery zeigt Resultate immer in max. Feldlänge an

Beitrag von Eb »

gibt es kein trim, ltrim, rtrim o.ä.?
also dann select trim(feldname) from tabellenname

pschoett
Beiträge: 36
Registriert: Sa 7. Feb 2015, 11:48

Re: SQLQuery zeigt Resultate immer in max. Feldlänge an

Beitrag von pschoett »

Nein, das hilft nicht, da die Ergebnisse in der Foxpro Tabelle auch nicht mit Leerzeichen gespeichert werden. Ich habe es zur Sicherheit aber auch getestet und es werden trotzdem die Leerzeichen ausgegeben.

stj
Beiträge: 19
Registriert: So 15. Okt 2006, 14:52
OS, Lazarus, FPC: Lazarus 2.2.0, FPC 3.2.2
Wohnort: Meckenburg-Vorpommern

Re: SQLQuery zeigt Resultate immer in max. Feldlänge an

Beitrag von stj »

Hallo.

Ich bin mir bzgl. FoxPro zwar nicht sicher ...

Normalerweise heisst CHAR(50), dass _genau_ 50 Zeichen gespeichert werden.
Mit VARCHAR(50) würdest du sagen, dass du _maximal_ 50 Zeichen gespeichert werden.

Nach meine Erfahrung geht das mit VARCHAR immer besser, aber ob FoxPro das kennt weiss ich nicht.

FG
Stephan

pschoett
Beiträge: 36
Registriert: Sa 7. Feb 2015, 11:48

Re: SQLQuery zeigt Resultate immer in max. Feldlänge an

Beitrag von pschoett »

Der Unterschied zwischen CHAR und VARCHAR war mir so nicht klar. Die Daten liegen in einer älteren Version von FoxPro vor, in der VARCHAR noch nicht bekannt ist. Erst ab FoxPro v9 ist dieser Daten Typ eingeführt worden. Leider wird auch erst ab v9 die CAST() Funktion eingeführt, um eine Umwandlung des Daten Typs im Query zu ermöglichen.

Dann sieht es so aus, dass ich damit leben muss. :(

Antworten