und wie sieht es mit TIBQuery aus ?
Funny!
Also, Mini-Table:
Code:
CREATE TABLE NEW_TABLE (
INTFIELD INTEGER,
STRFIELD CHAR(5),
VARCHARFIELD VARCHAR(5)
);
drin eine Zeile mit den Daten 123 / "123" / "abc"
Die
Query "
Select * From New_TAble where StrField='123'" liefert den Eintrag.
Lies ich dann allerdings das Feld "StrField" aus, krieg ich
"123_________________" -> "123" und 17 Leerzeichen
Frag ich die Länge via
SQL ab ("
Select Char_Length(StrField) ...") liefert Firebird den Wert 5. (das kann ich noch verstehen, ist halt kein VarChar)
Und zu allem Überdruss:
Bei folgendem Code funktioniert das Locate am integer- und am VarChar-Field, nicht aber am Char-Field. Kacke!
Delphi-Quellcode:
IBTable1.Open;
if IBTable1.Locate('IntField', 123, []) then
ShowMessage('Int found!'); // OK!
if IBTable1.Locate('StrField', '123', []) then
ShowMessage('Str found!'); // not found
if IBTable1.Locate('VarCharField', 'abc', []) then
ShowMessage('VarChar found!'); // OK
IBTable1.Close;