Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bon, vu que tu as gentiment répondu pour 3dstick FPS, je veux bien aider :
il faut que tu fasses un
IF SQLCA.SQLCODE=-1 THEN...
après le EXECUTE
D'ailleurs :
JCZ a écrit:
Salut
... recupere le code retour de chaque etape (execute & close)
Hors ligne
ca ne change rien... toujours pareil apres close.
Hors ligne
Mettons nous d'accord:
string ls_proc ls_proc = "pi_laboratoire 'toyn', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL" DECLARE proc_pc_appeon_execute PROCEDURE FOR pc_appeon_execute @as_variable = :ls_proc; EXECUTE proc_pc_appeon_execute; IF SQLCA.SQLCODE=-1 THEN GOTO ERROR close proc_pc_appeon_execute; IF SQLCA.SQLCODE=-1 THEN GOTO ERROR RETURN ERROR: MessageBox ("What the F...?", SQLCA.SQLErrTexT)
Hors ligne
Un petit test sur le SQLCode de SQLCA après l'EXECUTE ne ferait pas de mal à mon avis
[Edit]
Grillé par Shahin !
Hors ligne
shahin a écrit:
Mettons nous d'accord:
Code: pb
... IF SQLCA.SQLCODE=-1 THEN GOTO ERROR RETURN ERROR: MessageBox ("What the F...?", SQLCA.SQLErrTexT) ...
aaaaaaaarrrrrrrrrgggggggghhhhhhh un GOTO
Hors ligne
[HS]
J'en ai plus utilisé depuis que je ne fais plus de Basic sur Oric Atmos
10 Print "Ca boucle à Donf!" 20 Goto 10
[/HS]
Hors ligne
pick ouic a écrit:
je viens de comprendre un peu...
en fait, c'est le raiserror qui provoque cela.
le raiserror de la procédure stockée appelé affiche le message d'erreur ou de controle,
et s'enchaine ensuite l'erreur.
alors, comment faire pour eviter cette erreur, apres provocation d'un raiserror ?
JCZ a écrit:
2 solutions :
. soit tu modifies la proc pour avoir une valeur en out pour les erreurs gerées que tu veux recuperer
. soit tu fais le close uniquement si sqlcode = 0 après l'execute
Hors ligne
JCZ a écrit:
pick ouic a écrit:
je viens de comprendre un peu...
en fait, c'est le raiserror qui provoque cela.
le raiserror de la procédure stockée appelé affiche le message d'erreur ou de controle,
et s'enchaine ensuite l'erreur.
alors, comment faire pour eviter cette erreur, apres provocation d'un raiserror ?JCZ a écrit:
2 solutions :
. soit tu modifies la proc pour avoir une valeur en out pour les erreurs gerées que tu veux recuperer
. soit tu fais le close uniquement si sqlcode = 0 après l'execute
aucune des 2 solutions ne marche. j'avais deja bien testé avant... de poster cette question.
Hors ligne
je viens de trouver la solution...j'en ai bavé pour la trouver...
c'est donc un comportement different sous appeon.
en fait, mon framework comporte 2 transactions... il fallait juste killer la bonne transaction, avec sqlca.sqlcode = -1
cependant, cette transaction est bien killé... mais apres un select message de la base... bref, je me comprends.
car ca fonctionne normalement sous pb et sous webform.
Hors ligne