Einzelnen Beitrag anzeigen

ele

Registriert seit: 18. Feb 2009
129 Beiträge
 
Delphi 2010 Professional
 
#1

Feld über Parameter auf NULL setzen

  Alt 22. Jul 2010, 15:48
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
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?
  Mit Zitat antworten Zitat