Tegyük fel, hogy hiba történt az INSERT-ben, és sqlca.sqlcode==-1. Gyanítom, hogy valamilyen constraint sérült.
Vajon mit ténykedek, ha (magában a programban) szeretném megállapítani annak a contraint-nek a nevét, ami sérült, hogy isten ments valahogy megpróbáljam menteni a helyzetet, vagy legalább informatív hibaüzenetet adjak?
Nem találtam jobbat, mint hogy az SQLErrorGetText kimenetében megkerestem az első (vagy egyetlen) zárójelpárt, abban volt a constraint neve. Na, eddig ment, de ma a következőt kaptam: 'z'.... Némi nyomozás után bele is raktam a programba a következő üzenetet:
if (q==p+1 && p[0]=='z') { /* Ezt találtuk meg: "A(z)" */
fprintf (stderr,
"*** Valami jószándékú idióta az Oracle üzenetek"
" nyelvét magyarra állította.n"
"*** Kérlek javítasd ki:n"
"export NLS_LANG=American_America.EE8ISO8859P2n");
p= q+1;
goto KERESS;
}