begin process at 2010 02 09 22:54:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Divers

 > 

Prob des doublons!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Prob des doublons!!

mercredi 4 mai 2005 à 17:59:51 | Prob des doublons!!

smr_tjrs

Salut,
Je veux savoir cmt je peux éviter de saisir un enregistrement qui existe déjà.J'ai essayé de faire un fonction de recherche mais elle n'a pas marché.Est que vous pouvez m'aider SVP?
Merci d'avance.
mercredi 4 mai 2005 à 18:20:33 | Re : Prob des doublons!!

pioonice

Plus de précisions seraient les bienvenues...

merci

Fabien M.
mercredi 4 mai 2005 à 18:37:55 | Re : Prob des doublons!!

smr_tjrs

voici la fonction que j'ai utilisé:
   
Function Trouver ():boolean;
   DM.DSRuche.Dataset.First;
   while Not DM.DSRuche.Dataset.EOF do
      Begin
         If Dm.DSRuche.Dataset.Fields[0].Value=DBEdit.Text then
               Begin
                     Trouver:=True;
               End
                Else
                 Begin
                       DM.DSRuche.Dataset.Next;
                   End;
      End;
Et dans la partie Enregistrement avant de faire le Poste je verifie d'abord la valeur de TROVER si elle est False j'effectue l'enregistrement si non j'annule mais malheureusement ça passe tjrs sans vérifier :-((
jeudi 5 mai 2005 à 15:48:38 | Re : Prob des doublons!!

Delphiprog

Administrateur CodeS-SourceS
Regarde bien ton code de près :
Function Trouver ():boolean;
   DM.DSRuche.Dataset.First;
   while Not DM.DSRuche.Dataset.EOF do
      Begin
         If Dm.DSRuche.Dataset.Fields[0].Value=DBEdit.Text then
               Begin
                     Trouver:=True;
               End
                Else
                 Begin
                       DM.DSRuche.Dataset.Next;
                   End;
      End;
Même quand la valeur est trouvée, tu passes à l'enregistrement suivant !
Sauf coup de chance où le dernier enregistrement serait celui qui correspond à ce que tu cherches, ta fonction renverra pratiquement toujours faux.

Voici le code remanié et allégé :
function Trouver(AText: string): boolean;
begin
  //Initialiser le résultat
  Result := False;

  with DM.DSRuche.Dataset do
  begin
    First;
    while not EOF do
    begin
      if Fields[0].AsString = AText then
      begin
        Result := True;
        //Là, il faut sortir de la boucle While
        Break;
      end;
      Next;
    end;
  end;
end;


Mais pourquoi n'utilises-tu pas la méthode Lookup des TDataSet ?



Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
banner.gif<
jeudi 5 mai 2005 à 17:37:36 | Re : Prob des doublons!!

marie_rim



Bon merci pour votre aide mais même avec la nouvelle fonction que vous m'avez donné j'ai tjrs le même problème il reconnaît le doublons juste quand on insert une valeur qui est égale à  l'ID du premier enregistrement et dès qu'on insert une autre différente il débugue .
Merci
jeudi 5 mai 2005 à 23:02:47 | Re : Prob des doublons!!

Delphiprog

Administrateur CodeS-SourceS
Alors, c'est que le problème est ailleurs dans ton code servant à insérer un nouvel enregistrement.


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
banner.gif<
vendredi 6 mai 2005 à 17:43:33 | Re : Prob des doublons!!

marie_rim



   Merci bien mais je crois avoir trouver le problème:
au cour de l'execution de la fonction quand il passe à l'instruction First il mis à jour automatiquement la table donc il faut faire un cancel avant 
   Mais je travaille mnt avec des requettes je vois que c'est beaucoup mieux.
   Merci beaucoup pour votre aide
vendredi 6 mai 2005 à 19:29:01 | Re : Prob des doublons!!

Delphiprog

Administrateur CodeS-SourceS
Réponse acceptée !
Tout déplacement dans un ensemble de données provoque un post implicite.
Si l'enregistrement courant est en cours de modification au moment où tu lances la recherche, alors Delphi tente de le valider. Voici la fonction revue et corrigée pour régler ce problème :

function Trouver(AText: string): boolean;
begin
  //Initialiser le résultat
  Result := False;

 
with DM.DSRuche.Dataset do
  begin
    //annuler les modifications en cours
    if State in dsEditModes then
      Cancel;
    First;
   
while not EOF do
    begin
      if Fields[0].AsString = AText then
      begin
        Result := True;
       
//Là, il faut sortir de la boucle While
        Break;
     
end;
      Next;
   
end;
 
end;
end;


Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
banner.gif<
samedi 7 mai 2005 à 13:20:45 | Re : Prob des doublons!!

marie_rim


Merci bien pour votre aide precieuse avnt je faisais le cancel sans conditions (State in dsEditModes ) Mais Mnt ça marche
Merci mille fois.


Cette discussion est classée dans : doublons


Répondre à ce message

Sujets en rapport avec ce message

ListBox ??? [ par Fab ] Salut ,Je possede une listbox avec des doublons et je voudrais savoir comment faire pour parcourir la list et supprimer les lignes des doublons .Merci DOUBLONS DANS UNE TABLE INTERBASE [ par henrysteph ] J'ai rapatrié des données d'une table as 400 et incorporé dans une table Interbase.Il s'avère qu'il y a des doublons dans cette nouvelle table.As t'on Recherche de doublons dans une table [ par DGPat ] 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 fact Empêcher les doublons dans un TListbox [ par jule452 ] bonjours j'ai un petit probleme avec une listbox , voila je voudrait savois s'il y a  pas moyen pour qu'un mots ou une phrase deja mis dans la list ne routine aléatoire : comment éviter les doublons ? [ par alaga ] Bonjour,j'utilise une routine aléatoire et je voudrais éviter les doublons (c'està dire que le même nombre sorte deux fois). Est ce que quelqu'un peut Comment empêcher l'ajout de doublons dans une table ? [ par jennybless ] Salut!Mes excuses, je n'ai pas grands codes. Pourriez-vous me donner quelques pistes afin d'éviter une repetion de données dans une table.Par exemple detection d'un doublon de lignes et le supprimer [ par Napster ] salut tout le monde  , j'ai créer un petit editeurExtraire un fichie dans Listbox , mais dans le fichier ya des doublons de ligne , comment faire pour doublons et base de données [ par hassaine ] Bonjour,Je n'arrive pas à maitrisé le controle lors de la saisie des opérations ca m'arrive de saisir en double. j'aimerais bien avoir votre aide à éc Doublons [ par yassou2004 ] Bonjour a tous et à toutesvoila g une stringgrid rempli avec des données, et j'aimerais savoir comment mettre les doublons en évidence(no pas les supp suppression de doublons dans un tableau [ par lola937 ] Bonjour, je travaillle actuellement sur les tableaux et les tris.Le programme que je dois réaliser est le suivant: Soient t un tableau de taille n e


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales