Einzelnen Beitrag anzeigen

MichaelT

Registriert seit: 14. Sep 2005
Ort: 4020 Linz
532 Beiträge
 
Delphi 10.3 Rio
 
#23

AW: Firebird Procedure liefert null

  Alt 4. Mai 2017, 14:05
  IF (LE_EK <= 0 ) THEN Wen LE_EK IS NULL, dann wird der Ausdruck false. Der ART_EKNETTO wird hernach nirgends mehr verwendet und auch nicht protokolliert. Ohne : gibt es keine Binding der Variable.

Selbst wenn liefert die Protokollzeile NULL durch '||'. (SQL)

Ich arbeite deswegen lieber mit Records und die innere Logik in eine eigene Funktion gepackt. Damit kann man einen Art Unittest machen.


Folgendes ist mir auch noch aufgefallen:
INTO :ARTNR, :LGNR, BEREINH, ART_EKNETTO Dort fehlen Doppelpunkte. Wurde zwar irgendwo schon geschrieben, aber ich habe keine Antwort darauf gesehen.

Die Folge könnte sein, das ART_EKNETTO Null ist.
In dem Fall wäre hierdurch
SQL-Code:
LE_EK = (SELECT LE_EK FROM P_GET_LEEK_STICHTAG(:ARTNR, :LGNR, :DATUM));
       IF (LE_EK <= 0 ) THEN
         LE_EK = ART_EKNETTO;
LE_EK auch Null, sobald LE_EK <= 0 ist.
Das muss aber wohl jemand mit genaueren Firebird-Kenntnissen klären.
  Mit Zitat antworten Zitat