Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#4

AW: ParamByName geht und geht mal nicht

  Alt 25. Apr 2015, 16:10
Eigentlich müsste da sowas bei rauskommen.
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project3.exe ist eine Exception der Klasse Exception mit der Meldung 'Fehlermeldung' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Zitat:
Delphi-Quellcode:
if Query_Quelle.FieldByName('xxxxx').AsInteger = Null then
   Query_Quelle.FieldByName('xxxxx').AsInteger := 0
else
   Query_Ziel.ParamByName('xxxxx').AsInteger := Query_Quelle.FieldByName('xxxxx').AsInteger;
Sicher, daß es so stimmt?

AsInteger = Null wird niemals True liefern, denn 0 <> NULL.
AsInteger gibt eine 0 zurück, wenn der Wert des Feldes NULL ist.

"Query_Quelle.FieldByName('xxxxx').AsInteger := 0" ist garantiert das falsche DataSet.

Du meinst bestimmt
Delphi-Quellcode:
if Query_Quelle.FieldByName('xxxxx').IsNull then
   Query_Ziel.FieldByName('xxxxx').AsInteger := 0
else
   Query_Ziel.ParamByName('xxxxx').AsInteger := Query_Quelle.FieldByName('xxxxx').AsInteger;
Aber da AsInteger sowieso 0 liefert, wenn NULL, kann man das alles weglassen.
Query_Ziel.ParamByName('xxxxx').AsInteger := Query_Quelle.FieldByName('xxxxx').AsInteger; reicht aus, genauso wie doch auch AsString ein NULL in '' umwandelt, bzw. AsFloat in 0.


Was genau soll eigentlich der Code machen?
NULL in 0, bzw. '' umwandeln?
$2B or not $2B

Geändert von himitsu (25. Apr 2015 um 16:13 Uhr)
  Mit Zitat antworten Zitat