Contrôle de validité d'une date - algo

cs_manudel Messages postés 63 Date d'inscription lundi 29 avril 2002 Statut Membre Dernière intervention 7 mars 2005 - 29 avril 2002 à 21:11
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 30 avril 2002 à 21:02
Je dois faire un contrôle de validité sur un champ date, avant de faire un commit
sur un enregistrement.

Je dispose de 3 champs :
- un id
- un champ numéro de produit
- une date

Pour un champ donné, on prend son id.
Ensuite pour ce champ on question, on prend le dernier id précédemment enregistré dans la base.

Si la date pour l'id courant est postérieure à la date du id précédent, alors on ne fait pas le commit.

Je pense que ce problème est classique, mais je n'y arrive pas.

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
29 avril 2002 à 22:09
"Faire un commit sur un enregistrement" :
On fait un commit sur un TDataSet ou sur un TDataBase mais on fait un post sur un enregistrement.

"Ensuite pour ce champ on question, on prend le dernier id précédemment enregistré dans la base" :
De quel Id de quelle base ? ne veux-tu pas plutôt parler de la table ?

Quand tu parles de commit, es-tu sûr de quoi tu parles ?
Emploies-tu les cached updates ?
Sinon, avant de poster un enregistrement (BeforePost), tu peux effectuer le contrôle de la valeur de ton champ Date et déclencher une exception si la valeur est incorrecte. L'enregistrement ne sera alors pas posté.

Mais, stp, fais attention aux termes que tu emploies sinon personne ne te répondra.

May Delphi be with you.
0
cs_manudel Messages postés 63 Date d'inscription lundi 29 avril 2002 Statut Membre Dernière intervention 7 mars 2005
30 avril 2002 à 08:41
>"Ensuite pour ce champ on question, on prend le >dernier id précédemment enregistré dans la >base" :
>De quel Id de quelle base ? ne veux-tu pas plutôt >parler de la table ?
De table, oui.

>Quand tu parles de commit, es-tu sûr de quoi tu >parles ?
je veux parler de validation d'une transaction.

>Emploies-tu les cached updates ?
pas avec paradox.

>Sinon, avant de poster un enregistrement >(BeforePost), tu peux effectuer le contrôle de la >valeur de ton champ Date et déclencher une >exception si la valeur est incorrecte. >L'enregistrement ne sera alors pas posté.

Oui, mais mon problème est de comparer 2 ids différents, pour une date donnée (qui est différente), et un même champ numéro de produit.

Comment retrouver l''ancien ' id en fait ?

>Mais, stp, fais attention aux termes que tu >emploies sinon personne ne te répondra.
C'est retenu.


May Delphi be with you.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
30 avril 2002 à 21:02
En clair, la question se résume à : Comment lire l'enregistrement précédent ?

Réponse possible :
Dans BeforeInsert, stocke le contenu de ton champ Date dans une variable.

Dans un BeforePost, compare le contenu de ton champ avec ta variable et déclenche une exception si la valeur est postérieure à la date contenue dans la variable.

May Delphi be with you.
0
Rejoignez-nous