Einzelnen Beitrag anzeigen

Benutzerbild von toner
toner

Registriert seit: 2. Jan 2012
9 Beiträge
 
Delphi XE2 Professional
 
#1

Datentypfehler bei SQL Parameter

  Alt 26. Jan 2012, 11:00
Datenbank: MySQL • Version: 5.0.67 • Zugriff über: DBExpress
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?
Miniaturansicht angehängter Grafiken
tabelle.jpg  
  Mit Zitat antworten Zitat