Hallo Leute,
leider komme ich nun zum ersten Mal in den Genuss auch eine Frage zu stellen:
Ich habe eine Tabelle auf einem
MySQL Server die wie in Anhang tabelle.jpg aussieht, die ich aus Delphi XE2 per DBExpress TSQLQuery abfragen will.
Folgender Code:
Delphi-Quellcode:
qryManage.SQL.Clear;
qryManage.Params.Clear;
qryManage.SQL.Add('SELECT DISTINCT section FROM racks WHERE rack = :rack');
qryManage.SQL.Add('ORDER BY section ASC');
with qryManage.Params.CreateParam(ftShortInt, ':rack', ptInput) do
AsShortInt := StrToInt(cbRack.Selected.Text);
qryManage.Open;
erzeugt mir den Fehler:
"Der dbExpress-Treiber unterstützt den Datentyp TDBXTypes.UNKNOWN nicht. Fehlermeldung des Herstellers: ."
Laut HeidiSQL hat der
MySQL Datentyp TINYINT UNSIGNED einen Wertebereich von 0-255, weshalb ich statt ftShortInt auch schon ftByte, ftWord, ftSmallInt versucht hab.
Ein
GetEnumName(TypeInfo(TFieldType), Integer(qryManage.FieldByName('rack').DataType));
gibt mir jedoch ftShortInt zurück, und ein
qryManage.FieldByName('rack').DataSize;
ne 1;
Deklariere ich die
MySQL Spalte als Integer und den Parameter des Querys ebenfalls, so funktioniert alles einwandfrei.
Kann mich da einer mal aufklären?