Einzelnen Beitrag anzeigen

Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#3

AW: IBTable.Locate funktioniert nicht bei FB Dialekt 3

  Alt 10. Mär 2011, 12:05
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;
  Mit Zitat antworten Zitat