Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
En PowerBuilder 11.2 Build 8616, je dispose d'un webservice déployé qui possède deux fonctions :
uof_insert (integer code_metier,integer code_groupe,string nom_metier)
INSERT INTO metier VALUES(:code_metier, :code_groupe, :nom_metier); IF SQLCA.SQLCode = -1 THEN ROLLBACK USING SQLCA; ELSE COMMIT USING SQLCA; END IF
uof_delete (integer code_metier,integer code_groupe,string nom_metier)
INTEGER li_ret DELETE FROM metier WHERE code_met=:code_metier AND code_group=:code_groupe AND nom_met=:nom_metier; IF SQLCA.SQLCode = -1 THEN ROLLBACK USING SQLCA; ELSE COMMIT USING SQLCA; END IF
(je ne me suis pas encore inquiété des modifications de ligne)
Dans ma datawindow, les webservices update sont désigné pour référer à ces fonctions :
L'insert fonctionne bien et est commité, même pour du multi-insert.
Par contre, le delete n'est pas commité.
Quelqu'un aurait-il déjà rencontré ce genre de problème, et si oui comment l'a-t-il réglé ?
NB:
Dernière modification par BRWA (22-04-2009 08:33:03)
Hors ligne
Bonjour,
Tu peux peut-être rajouter une trace dans le journal du serveur pour connaître le statut du SQLCODE, SQLErrText après l'exécution du "delete".
Hors ligne
J'ai essayé avec :
integer li_FileNum li_FileNum = FileOpen("F:\Bruno_Wagener\Web_Services\delete.txt", & LineMode!, Write!, LockWrite!, Append!) FileWrite(li_FileNum, "open") DELETE FROM metier WHERE code_met=:code_metier /*AND code_group=:code_groupe AND nom_met=:nom_metier*/; IF SQLCA.SQLCode = -1 THEN ROLLBACK USING SQLCA; ELSE COMMIT USING SQLCA; END IF FileWrite(li_FileNum, STRING(li_ret))
le fichier delete.txt a bien été créé sur le serveur, mais vide ...
Dernière modification par BRWA (22-04-2009 07:17:35)
Hors ligne
Bonjour,
Il manque le FileClose(li_filenum) pour fermer correctement le fichier après écriture. Mais en fait, j'ai supposé que tu utilisais EAServer et que tu pouvais écrire une trace de la façon suivante :
// Créer un object pour écrire dans le journal des logs jaguar ErrorLogging iel_jag this.GetContextService( "ErrorLogging", iel_jag) iel_jag.log( "mon message dans le jaguar.log")
Hors ligne
Je vais essayer avec le close.
Je n'utilise pas EAServer.
Hors ligne
Merci, ça m'aide pour débugger ... J'avais un restrict on delete dans ma BD
Hors ligne
J'ai vu mon erreur et ça passe ... Ce n'était pas un problème au niveau du webservice mais au niveau des droits de mes tables dans la BD.
Merci beaucoup !
Hors ligne
Pages: 1