Entwickler-Ecke

Datenbanken - AdoQuery liefert nicht den kompletten String zurück


Bronstein - Mi 15.07.09 09:46
Titel: AdoQuery liefert nicht den kompletten String zurück
Hallo,
ich lese mit einer AdoQuery Daten aus einer Microsoft SQL-DB.
Jetzt wird der String nicht vollständig ausgegeben.

In der Datenbank steht 75_470_060_00_Änderung die AdoQuery liefert mir aber nur 75_470_060_00_Änderu
Es fehlen also 2 Zeichen!

Woran kann das liegen?

So lese ich den String mit der AdoQuery aus:
ShowMessage(ADOQueryOIS.FieldByName('LP').AsString);


tif - Mi 15.07.09 12:49

Gitb's TField - Komponenten (Doppelklick auf die ADO - Query)

Ich tippe, dass die auf Fieldsize=20 (Standard) stehen.


Bronstein - Mi 15.07.09 15:25

Hallo,
wie kann ich das per Code machen. Da ich die AdoQuery zur Laufzeit erstelle.

Ich dachte ich mache das so:
ADOQueryOIS.Fields.FieldByName('LP').Size := 40;

Wenn ich das bevor ich die Query auf Active := true setze mache bekomme ich folgenden Fehler:
Im Projekt xxx.exe ist eine Exception der Klasse EDatabaseError mit der Meldung 'ADOQueryOIS: Das Feld 'LP' wurde nicht gefunden' aufgetreten.

und wenn ich es nach dem ich die Query auf active true gesetzt habe bekomme ich folgende Meldung:
Im Projekt xxx.exe ist eine Exception der Klasse EDatabaseError mit der Meldung 'ADOQueryOIS: Operation bei geöffneter Datenmenge nicht ausführbar' aufgetreten.


tif - Mi 15.07.09 15:39

Zitat:

...Da ich die AdoQuery zur Laufzeit erstelle.


Dann sollte es eigentlich funktionieren.
Welche Werte zeigen denn

ADOQueryOIS.Fields.FieldByName('LP').Size und
ADOQueryOIS.Fields.FieldByName('LP').DisplayWidth

zur Laufzeit ?


Bronstein - Mi 15.07.09 15:45

Zeigen beide 50 an!


Bronstein - Fr 17.07.09 10:10

Hat niemand eine Idee woran das leigen kann?