![]() |
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
Feld über Parameter auf NULL setzen
Hallo,
Ich habe da mal wieder ein kleines Problem analog zu ![]() 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:
Delphi-Quellcode:
Ich habe auch verschiedene andere Varianten ausprobiert, die haben bisher aber nicht gefruchtet:
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
Delphi-Quellcode:
Wie macht man das richtig?
Query.Parameters.ParamByName('Released').Value := IfThen(Released = 0, NULL, Released);
Query.Parameters.FindParam('Released').Value := IfThen(Released = 0, NULL, Released); |
AW: Feld über Parameter auf NULL setzen
:wall:
Oh, mann bin ich blöd. Das Problem liegt am IfThen... Es wird automatisch die Variante für TDateTime verwendet, welche dann natürlich mit dem NULL nichts anfangen kann. Thread kann geschlossen werden. 'Tschuldigung für die Belästigung. :oops: |
AW: Feld über Parameter auf NULL setzen
IIRC musst Du die Clear-Methode des Parameters aufrufen.
Delphi-Quellcode:
Query.ParamByName('Bla').Clear;
|
AW: Feld über Parameter auf NULL setzen
Danke für den Hinweis, es funktionert aber auch mit NULL, nur halt nicht ganz so elegant über IfThen:
Delphi-Quellcode:
if Released = 0
then Query.Parameters.ParamValues['Released'] := NULL else Query.Parameters.ParamValues['Released'] := Released; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz