Powerbuilder pour les completement Geeks !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 18-11-2008 16:15:57

cyraile  
Membre Geek
Date d'inscription: 19-09-2008
Messages: 31
Pépites: 191
Banque: 0

Datawindow - dw.update() - recupération des outputs

Bonjour,

Alors voila - j'ai une datawindow qui utilise une procédure stockée qui permet de notamment de faire un delete quand je lui passe 'D' en paramètre.
J'ai donc créer dans le 'Rows/Stored Procedure Update' tout ce qui va bien pour l'appelle de ma procédure en mode 'D'--> Delete.

Dans ma procédure je gère un code erreur qui sera renvoyé soit par le RETURN soit en OUTPUT.

Mon problème.

- Je delete ma row dans la datawindow dw.deleteRows(x)
- je fait l'update --> il me renvoi 1

mais le truc c que j'ai gérer un code erreur qui me permet de ne pas deleter la rows s'il elle contient des enregistrements dans d'autres tables - donc je voudrait pouvoir récupérer mon codeErreur de ma procédure pour faire un test supplémentaire après le update.

Merci de votre aide.
J'espère avoir été assez clair .

Hors ligne

 

#2 19-11-2008 09:39:18

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Datawindow - dw.update() - recupération des outputs

il existe des evenements ou on peut recuperer le retour des messages.

dberror par exemple


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 19-11-2008 09:47:13

cyraile  
Membre Geek
Date d'inscription: 19-09-2008
Messages: 31
Pépites: 191
Banque: 0

Re: Datawindow - dw.update() - recupération des outputs

Mais en fait le truc - c'est qu'il n'y a pas d'erreur.

Ma procédure permet de ne pas faire le Delete si l'enregistrement fait parti d'une clé étrangère dans une autre table. Dans ce cas dans le return de ma procédure je renvoi le codeErreur -3 que je voudrait récupérer.

Hors ligne

 

#4 19-11-2008 09:54:56

cyraile  
Membre Geek
Date d'inscription: 19-09-2008
Messages: 31
Pépites: 191
Banque: 0

Re: Datawindow - dw.update() - recupération des outputs

Sinon - comment faire pour récupérer les OUTPUT de ma procédures ?

Hors ligne

 

#5 19-11-2008 10:00:37

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: Datawindow - dw.update() - recupération des outputs

dans ce cas, pourquoi ne pas faire les tests de validation avant de lancer ton delete ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#6 19-11-2008 10:13:25

cyraile  
Membre Geek
Date d'inscription: 19-09-2008
Messages: 31
Pépites: 191
Banque: 0

Re: Datawindow - dw.update() - recupération des outputs

parce que je veux séparer la partie metier de mon appli du coup - tout mon SQL se trouve dans mes procédure et pas dans mon appli - ce qui va rendre la maintenance plus efficace par la suite.
Donc je fait quelques tests basique dans l'appli histoire de voir si une ligne est bien sélectionner.

Ensuite dans ma datawindow je rempli les propriétés pour le 'Stored Procedure Update' afin que quand je fasse dw.update() ça me fasse ce qu'il faut.

Dans mon cas dw_update() marche correctement et me renvoie un. Or dans ma procédure j'ai 3 OUTPUTS et un RETURN qui me permet normalement de récupérer un message et un codeRetour (que je veux récupérer -- MAIS COMMENT ????)   --- ce message je voudrais l'afficher dans un messagebox à la fin de l'update si tout c'est bien passé.

Dans le cas ou la ligne est bien supprimée alors : messagebox('Suppression', string(cdeRet)+' : '+msgRet)
idem si ca c'est pas bien passé (niveau de ma procédure) : messagebox('Suppression', string(cdeRet)+' : '+msgRet) ou la le message serai alors "-1 : impossible de supprimer cet enregistrement car il est référencédans une autre table".

Hors ligne

 

#7 19-11-2008 15:54:13

anfr2005  
Membre
Date d'inscription: 12-02-2008
Messages: 5
Pépites: 15
Banque: 0

Re: Datawindow - dw.update() - recupération des outputs

Bonjour,

Dans la proc. stoc. utilisée pour Insert/Update/Delete il faut faire un raiserror + return.
Ex. Sybase:

select @T = 'Message d'erreur à récupérer sur l'ev. dberror de la dw'
raiserror 99002 @T       
return 

Sur l'ev. dberror de la dw, les arguments en entrée seront:

sqldbcode = 99002
sqlerrtext = le message d'erreur (@T)

A+

Hors ligne

 

#8 19-11-2008 16:24:37

sylvm1  
Membre Geek
Date d'inscription: 03-09-2008
Messages: 40
Pépites: 198
Banque: 0

Re: Datawindow - dw.update() - recupération des outputs

de quel type sont tes OUTPUT et return car j'ai eu un problème récement avec ça avec des retour de type caractère

Hors ligne

 

#9 20-11-2008 08:53:11

JCZ  
Builder Power
Award: bf
Lieu: 75019 paris
Date d'inscription: 21-05-2007
Messages: 1724
Pépites: 496,453,703,213
Banque: 9,223,372,036,854,776,000

Re: Datawindow - dw.update() - recupération des outputs

c'est cela que tu recherches ?


Face à l'agression, la puissance de l'intelligence

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22