Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Salut,
Sur tentative de la suppression d'une occurence d'enregistrement d'un champ (foreign key) utilisé par une autre table, le système me le signale
([Sybase][ODBC Driver]Integrity constraint violation:...)
Et évidemment la suppression échoue.
Y-a-t-il un moyen de personnaliser (en français) ce message?
Merci .
Dernière modification par ConanKanem (01-06-2007 07:00:26)
Hors ligne
tu testes le sqlca.sqlcode de ta suppression dans le code et en fonction du resultat tu peux faire une messagebox avec le texte que tu veux.
Hors ligne
Ok. Merci.
Hors ligne
ca fonctionne ?
Hors ligne
J'ai essayé, voilà ce que ça donne:
dw_1.deleteRow(0) dw_1.update() IF (SQLCA.SQLCODE=-1) then messagebox("Information utilisée", SQLCA.SQLErrText ) end if
Sinon j'ai trouvé une autre solution (qui marche) qui consiste à faire une requete sur le champ (foreign key). Celle-ci me permet de savoir si l'information saisie sur la datawindow existe. Si oui, je mets une variable d'instance booléenne à true sinon à false. Ce code est inséré dans l'événément itemfocuschanged de la datawindow.
Ainsi sur le click scrip du bouton de la suppression, je texte: si la variable booléenne est true, exécuter le code de la suppression. Sinon afficher que l'information est déjà utilisée par une autre ressource, elle ne peut pas être supprimée.
if ictrl_existance = true then If Messagebox("Suppression", "Etes-vous sure de vouloir Supprimer?", & Question!,YesNo!) = 1 THEN dw_sous_classe_vrai.deleteRow(0) dw_sous_classe_vrai.update() end if else Messagebox("Attention","Ce champ est utilisé par une autre ressource, il ne peut pas être supprimer") end if
Hors ligne
ConanKanem a écrit:
J'ai essayé, voilà ce que ça donne:
Code: pb
dw_1.deleteRow(0) dw_1.update() IF (SQLCA.SQLCODE=-1) then messagebox("Information utilisée", SQLCA.SQLErrText ) end if
Désolé, mais NON !
Tu ne peux utiliser le SQLCODE que pour le SQL en ligne.
Il faut utiliser l'événement DBError
Hors ligne
Bonjour,
Merci pour la réponse.
Pourriez-vous utiliser le mod code=pb pour vos scripts?
J'ai corrigé pour cette fois.
Merci de nous signaler s'il est possible de passer le sujet à [RESOLU]
Cordialement.
Hors ligne