|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
Bonjour,
Mon problème est simple. J'ai un formulaire classique en mise à jour sur une table. Cependant mes traitements peuvent être différents en fonction du ou des champs mis à jour par l'utilisateur. Quelle est la bonne méthode pour détecter si un champ a été mis à jour ? Sauvegarder le context après le select et passer les valeurs avant modif au XMLService suivant ? Ou refaire un select avant mise à jour dans le XMLService suivant ? Ou mieux ? |
|
|
00
|
|
|
#2 | ||||
|
Membre éclairé
![]() |
Une technique simple consiste à passer en champs cachés (input type="hidden") tous les champs. Par exemple, tu as les champs PERSON_ID, PERSON_FIRST_NAME, PERSON_LAST_NAME
ton formulaire ressemblerait à ca : Code :
A la validation de ce formulaire, tu aurais alors dans le Context les précédentes valeurs ainsi que les nouvelles, ce qui te permettra de faire un test par code : Code :
Si tu ne peux ou ne dois pas faire confiance en tes utilisateurs, le plus sage est alors de récupérer avant traitement les anciennes valeurs, telles qu'elles sont dans la base et de faire les traitements à ce moment. Tu peux faire ca en utilisant un TDacQuery dans le BeforeXMLGram par exemple. Attention à ne pas écraser le Context avec cette requete L'inconvenient de cette derniere technique, c'est qu'un autre utilisateur aurait pu modifier le même enregistrement entre temps (entre le moment ou un premier utilisateur recoit la page HTML et le moment ou il la submit). Pour conclure: la méthode 1 (passage en double des champs) est à préférer dans la majeur partie des cas : plus simple, meilleur fonctionnement lors de forte concurrence. Pour palier au problème de l'utilisateur mal intentionné, il serait possible de crypter les valeurs initiales par code, de les placer dans un champ caché et de les décrypter à la reception. (voir les fonctions Bin2Hex et Hex2Bin de XMLUtils.pas) Voilà, bon courrage :d
__________________
Nicolas |
||||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : août 2002 Messages : 130 ![]() |
Merci Nicolas
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com