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