Hallo,
Ich habe da mal wieder ein kleines Problem analog zu
diesem Thread. Nur dass ich das über
ADO anstatt über Zeos mache und die Datenbank dahinter
MSSQL ist.
Zusammenfassung: Ich versuche ein Feld, in diesem Fall
Released (datetime, allow nulls = true) über update auf null zu setzen. Ich könnte das natürlich auch direkt in
SQL machen, würde aber den Weg über Parameter vorziehen.
Der Fehler:
Zitat von
EVariantTypeCastError:
Could not convert variant of type (Null) into type (Double)
Mein Code (
Released ist ein TDateTime):
Delphi-Quellcode:
Query.SQL.Text :=
'
UPDATE ChangeSets SET Author = :Author, Released = :Released WHERE ID = :ID';
Query.Parameters.ParamValues['
ID'] := ID;
Query.Parameters.ParamValues['
Author'] := Author;
Query.Parameters.ParamValues['
Released'] := IfThen(Released = 0, NULL, Released);
// <-- Fehler hier
Ich habe auch verschiedene andere Varianten ausprobiert, die haben bisher aber nicht gefruchtet:
Delphi-Quellcode:
Query.Parameters.ParamByName('
Released').Value := IfThen(Released = 0, NULL, Released);
Query.Parameters.FindParam('
Released').Value := IfThen(Released = 0, NULL, Released);
Wie macht man das richtig?