Hallo zusammen,
ich habe das Problem gefunden. Wenn man es erstmal verstanden hat, ist es ganz einfach:
Ich habe in meinem Programm 2 select-Anweisungen, von denen nur eine ausgeführt wird:
Code:
if a=b then
select irgendwas, was schief geht (also not found);
end if;
if a<>b then
select irgendetwas anderes;
end if;
code = sqlcode;
An dieser Stelle sollte der sqlcode eigentlich noch 100 sein,
weil die erste select-Anweisung ausgeführt wurde, aber nichts gefunden hat.
Die zweite select-Anweisung wurde wegen des if a<>b nicht ausgeführt,
sollte meiner Meinung nach also den sqlcode nicht verstellen.
Aber: Der sqlcode wird von jeder SQL-Anweisung verändert.
Die Anweisung if a<>B ist ja auch eine SQL-Anweisung (wenn auch nur
eine Strukturanweisung). Diese Anweisung stellt den sqlcode wieder zurück auf 0,
da ja ein Vergleich technisch gesehen fehlerfrei stattgefunden hat.
Jetzt werdet ihr sagen: War ja klar, habe ich ja schon immer gewusst ...
Ok, das würde ich euch auch glauben :-)
Ich fand aber es schon tricky.
Nochmals Danke,
Dieter
Bookmarks