Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Spalte hat den Wert Null und lässt sich nicht updaten (https://www.delphipraxis.net/198078-spalte-hat-den-wert-null-und-laesst-sich-nicht-updaten.html)

Walter Landwehr 2. Okt 2018 14:36

Spalte hat den Wert Null und lässt sich nicht updaten
 
Hallo, ich habe eine Tabelle mit einer Spalte (ANZAHLMAIL) . Nun will ich per SQL Update die Spalte um 1 erhöhen.
Delphi-Quellcode:
update TBL_MANDANT set MAILANZAHL = MAILANZAHL + 1
Der SQL Befehl wird ausgeführt aber die Spalte ist immer noch NULL, Warum?

Hat die Spate den Wert >= 0 dann funktioniert es. Wie kann ich das umgehen das auch bei Null der Update Befehl funktioniert.

sko1 2. Okt 2018 15:02

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
NULL ist halt was anderes als 0 !

NULL ist leer und damit kann Dein SQL-Statement nix anfangen...

Ciao
Stefan

DasWolf 2. Okt 2018 15:25

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
Probiere mal folgendes:

Code:
update TBL_MANDANT set MAILANZAHL = ISNULL(MAILANZAHL, 0) + 1

himitsu 2. Okt 2018 15:46

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
NULL plus/minus/und/oder Irgendwas ist immer NULL.
Bei Google suchennull arithmetic

COALESCE, ISNULL usw. sind mögliche Lösungen.

TigerLilly 2. Okt 2018 15:56

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
Aber Achtung: Eben weil NULL nicht das selbe wie 0 ist, sollte man NULL und 0 nicht gleich setzen. Die Frage ist, warum ein Feld NULL enthält, obwohl es doch 0 enthalten sollte.

Vielleicht wäre eine DEFAULT Klausel bei der Tabellenerstellung sinnvoll oder eine Initialisierung beim INSERT.

Walter Landwehr 2. Okt 2018 16:08

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
ISNULL kennt Firebird nicht. Ich denke ich muss nach dem einfügen der Spalte den Wert auf 0 setzten.

Neutral General 2. Okt 2018 16:12

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1414694)
ISNULL kennt Firebird nicht. Ich denke ich muss nach dem einfügen der Spalte den Wert auf 0 setzten.

Wie himitsu schon gesagt hat: coalesce ist was du brauchst:
Code:
update TBL_MANDANT set MAILANZAHL = coalesce(MAILANZAHL, 0) + 1

Walter Landwehr 2. Okt 2018 16:13

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
Dank himitsu,

das funktioniert.

Delphi-Quellcode:
update TBL_MANDANT set MAILANZAHL = COALESCE(MAILANZAHL, 0) + 1

mkinzler 2. Okt 2018 16:16

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
NULLIF, COLAESCE,

SQL-Code:
IIF( <Spalte> is Null, 1, <Spalte> = <Spalte> +1)
SQL-Code:
case <Spalte>
  when null then 1
  else <Spalte> = <Spalte> +1
end

TigerLilly 2. Okt 2018 17:01

AW: Spalte hat den Wert Null und lässt sich nicht updaten
 
Nocheinmal: Wenn man seine Tabellen von Anfang an g´scheit definiert braucht es nachher keine komplizierten Kopfstände.

Merke: NULL <> 0

ISNULL, IIF, COALESCE, WHEN in Kombination mit NULL sind immer ein Zeichen für mangelhaftes Design.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz