Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour,
J'utilise une datastore pour gérer les <insert> et <update> d'une table SQL.
Cela me permet de ne pas gérer les ordres SQL d'insert, d'update.
Par contre, lors du lancement de l'update s'il y a une erreur on récupère le code retour -1.
J'aimerais pouvoir récupérer le ou les code erreurs SQL.
Je sais le gérer si c'est une datawindow en utilisant l'événement <dberror>.
Mais là, comme c'est une datastore, je n'ai pas cet évnement.
Je pourrais créer une datawindow en invisible, je suis dans une fonction.
Donc ma question est :
Existe-t-il un moyen de récupérer les codes erreur lors d'un <update> sur une datastore
D'avance merci pour vos réponses ???
Le gone de lyon
Hors ligne
sqlca.sqlcode pour le code et SQLCA.SQLErrText pour le message
Hors ligne
bonjour,
en retour du <update> de la datastore, nous affichons le contenu de <sqlca.sqlcode> et <sqlca.sqlerrtext> sont à zéro et à blanc avec un code retour à -1
D'où notre problème !!!
Le_gone_de_lyon
Hors ligne
le_gone_de_lyon a écrit:
bonjour,
en retour du <update> de la datastore, nous affichons le contenu de <sqlca.sqlcode> et <sqlca.sqlerrtext> sont à zéro et à blanc avec un code retour à -1
D'où notre problème !!!
Le_gone_de_lyon
As-tu vérifié que la DW utilisée dans ta datastore était bien updatable (update properties).
Essaies de faire un update en utilisant la DW depuis le painter Datawindow de PB pour voir comment elle réagit.
Hors ligne
le_gone_de_lyon a écrit:
Donc ma question est :
Existe-t-il un moyen de récupérer les codes erreur lors d'un <update> sur une datastoren
Salut, oui tu peux créer un userobject hérité d'un datastore et dans l'événementt dberror tu récupères sqldbcode, sqlerrtext
Hors ligne
Bonjour,
Merci pour ta réponse, c'est Ok en créant un userobject hérité d'une datastore.
Le plus a été de trouver comment le faire !!!
Mais c'est il fallait utiliser un pB Object de type Standard Class
RESOLU !!!!!
Encore merci
Le_gone_de_lyon
Hors ligne
Bonjour,
Pourrais-tu modifier le titre de ton topic en mettant [RESOLU] devant?
d'avance
Hors ligne
le_gone_de_lyon a écrit:
Merci pour ta réponse, c'est Ok en créant un userobject hérité d'une datastore.
et en fin de compte, tu as identifié l'erreur ? quelle est-elle ?
Hors ligne
Bonjour,
Le but de cette demande n'était pas d'identier une erreur.
Mais c'était d'intercepter une erreur lors du lancement de l'update.
Nous utilisons une datastore pour faire une création (insert) mais nous voulons gérer un numéro unique.
Ce numéro unique est géré pour une autre table des compteurs (lecture du compteur + 1)
Par contre, il se peut que 2 personnes demandent une création en même temps et récupèrent le même numéro.
Donc au moment de l'insert, un des deux prendra une erreur au moment de la validation
(erreur 2627 : voilation unique key)
Donc maintentant, nous pouvons intercepter l'erreur et redeterminer un nouveau numéro de compteur et relance la procédure.
Nous ne savons pas gérer des lectures bloquantes d'enregistrement + maj (==> gestion des compteurs)
C'est pour cela que nous gérons le code retour d'un insert
Cordialement
Hors ligne
Pages: 1