Recherche de doublons dans une table

Résolu
DGPat Messages postés 53 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 1 août 2006 - 26 juil. 2005 à 12:53
roud59 Messages postés 99 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 26 juillet 2007 - 26 juil. 2005 à 22:44
Bonjour,

Avant la fonction Post dans une table Paradox je voudrais vérifier si cet enregistrement n'existe pas dans la table (saisir deux fois une facture par exemple)

j'ai essayé avec une boucle mais je dois mal formuler cette boucle car le prog plante

Si quelqu'un peut expliquer comment faire pour vérifier si un enregistrement existe je l'en remercie à l'avance.

Ce n'est pas parce qu'on débute que l'on est forcement idiot
DGPat

5 réponses

roud59 Messages postés 99 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 26 juillet 2007 2
26 juil. 2005 à 22:44
Je ne pense pas que cette syntaxe SQL existe avec Pradox et voilà peut-être une autre solution :

Tu crées un autre TTable (Table2) avec le même TableName que ta table en edition (Table1)
Dans ton Table1.BeforePost tu fais :

Table2.Refresh; // actualiser, les enregistrement sauf celui de Table1 qui n'est pas posté
if Table2.Locate('Mois;Region;Imputation', VarArrayOf(cbMois.text, ...),[loCaseInsensitive]) then
raise Exception.Create('Doublon'); // par exemple

Tu peux aussi utiliser lookup. Il faut utiliser une autre table (table2) car lookup ou locate font un post sur les tables en edition.

Roud59
3
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 juil. 2005 à 13:01
Essaye la commande IF NOT EXISTS juste après le premier mot clé de la requète, style :
INSERT IF NOT EXISTS INTO ...

===========
Validez les réponses si ok...

ViewVite XP : HTML
0
DGPat Messages postés 53 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 1 août 2006
26 juil. 2005 à 13:41
Merci GrandVizir de m'avoir répondu

C'est justement là que je plante, je ne sais pas formuler correctement cette fonction

J'ai un DBEdit qui s'appele DBEdJustificatif pour un Champ du même nom c'est justement ce champ que je veux vérifier avant de valider l'enregistrement

J'ai Bouton "Valider" sa fonction allégée est la suivante:

DModAnaly.TAnalyt.FieldByName('Mois').Value:= CbMois.Text;
DModAnaly.TAnalyt.FieldByName('Region').Value:= CbReg.Text;
DModAnaly.TAnalyt.FieldByName('Imputation').Value:= CbImput.Text;
DModAnaly.TAnalyt.Post;
end;

Pourrais tu me donner un exemple a partire de cette fonction pour que je comprenne

Merci de ta patience

Ce n'est pas parce qu'on débute que l'on est forcement idiot
DGPat
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
26 juil. 2005 à 13:54
Je ne suis pas pro du BDE de Delphi, car je ne gère des BDD qu'avec Php/MySql. C'est comme si je n'avais que le TQuery en somme...

Ce que je peux te dire pour l'instant (et ça sera tout d'ailleurs), c'est de regarder :
c:\program files\Borland\Common Files\BDE\localsql.hlp

Ca fait 101 ko et çà résume tout bien sur le SQL...

===========
Validez les réponses si ok...

ViewVite XP : HTML
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DGPat Messages postés 53 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 1 août 2006
26 juil. 2005 à 14:07
Merci,
Je vais regarder

Ce n'est pas parce qu'on débute que l'on est forcement idiot
DGPat
0
Rejoignez-nous