Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour, j'ai de nouveau une épine dans le pied avec Powerbuilder.
J'ai donc un évènement, travaillant sur une datawindow dw_1 comprenant plusieurs champs dont deux champs facultatifs. La fenêtre permet l'édition de tous ces champs, y compris les champs facultatifs.
Or une erreur "datawindow error - Row changed between retrieve and update." survient après avoir mis à jour (via UPDATE puis COMMIT) ces champs facultatifs (initialement à null) lorsqu'une autre donnée de la datawindow est modifiée puis mise à jour via la commande dw_1.update et pour cause, la requête SQL (retournée dans le message d'erreur "datawindow error - Row changed between retrieve and update.") m'indique:
UPDATE "TABLE" SET "CHAMP_1" = :1, "CHAMP_2" = :2, etc.
WHERE "CHAMPS_OBLIGATOIRES"= :blabla AND CHAMPS_FACULTATIFS=null
Malgré l'update/commit, mes champs facultatifs semblent avoir été mis à jour en base mais pas dans son "image" dans ma datawindow. (J'ai essayé de forcer la prise en compte du changement via dw_1.setitem(1,"champs facultatifs",nouveaux_champs_facultatifs_saisis_par_user), mais ça ne fait rien avancer ...
Si quelqu'un avait une idée ... merci.
Dernière modification par TigerTigerTiger (04-11-2011 15:22:56)
Hors ligne
Bonjour,
Pour éviter ce genre de problème dans "Where clause for update/delete" il faut spécifier "key columns".
Hors ligne
D'accord, à définir où, directement dans ma datawindow ? (mais à quel niveau)
Hors ligne
Rows > Update properties
Hors ligne
Merci bien ! (Oui, mes connaissances de cet environnement sont assez basiques, et mes questions encore plus ...)
Actuellement j'ai "key and updatable columns" pour "where clause for update/delete", et "use delete then insert" pour "key modification". Je fais le test et je reviens donner des nouvelles.
Hors ligne
Et mon problème disparût comme par magie.
Merci ! Je passe le sujet en [RESOLU]
Hors ligne