IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

vérification à la sortie d'une boucle


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut vérification à la sortie d'une boucle
    j'ai une boucle qui exécute autant de requetes que d'éléments dans la boucle..

    je voudrais instaurer un mécanisme propre pour l'exécution des requêtes.. voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for j := 0 to myList.count-1 do
    begin
    maCommandeInsert := ' insert into myTable (champ1, champ2, champ3) VALUES (' +
       quotedstr(Edit1.Text) + ' , '  +
       quotedstr(Edit2.Text) + ' , '  +
       quotedstr(myList[j]) + ')'; // myList est une TStringList
     
    //commande execQuery que j'ai écrite qui retourne un boolean  
    if execQuery(ADOConnection1, cmd_Insert) then counter := counter +1;
      end;
    end;
     
    if counter = myList.count - 1 then showmessage('Tous les enregistrements ont été ajoutés');
    comment afficher les enregistrements (en l'occurrence les éléments de myList) qui n'ont pas été ajoutés (pour des contraintes d'intégrité par exemple...)..
    et puis deja, la dernière ligne que j'ai écrite est fausse car dans le cas ou j'ai un seul enregistrement (1 seul élément de myList), et que son insertion ait échoué, j'aurai quand même le message de confirmation..

    Merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 932
    Billets dans le blog
    6
    Par défaut
    bonjour,

    je vois qqch du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    FailedList.Clear; // autre TStingList
     
    for j:=0 to  myList.count-1 do
    begin
    maCommandeInsert := ' insert into myTable (champ1, champ2, champ3) VALUES (' +
       quotedstr(Edit1.Text) + ' , '  +
       quotedstr(Edit2.Text) + ' , '  +
       quotedstr(myList[j]) + ')'; // myList est une TStringList
     
    if not execQuery(ADOConnection1, cmd_Insert) 
    then FailedList.Add(myList[j]);
    end;
     
    if FailedList.Count=0 then // OK
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 365
    Par défaut
    comment je pourrais afficher dans un seul showmessage tous les éléments de ma FailedList ??

    Merci

  4. #4
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Bonjour,

    Stocke tes erreurs dans une variable ansistring ou dans un tableau (ma solution préférée), et ajoute les erreurs au fur et a mesure que tu les détectes, et à la fin de ta boucle tu affiche ton showmessage.

    Mais personnellement pour afficher les erreurs j'utilise une autre fiche dans laquelle je pose une listbox, et en cas d'erreur elle m'affiche le tableau d'erreur que j'ai précedemment créé.

    En espérant que ça t'inspirera.

    @+.

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 932
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage('Erreurs sur les enregistrements : '+FailedList.Text);
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de sortie d'une boucle
    Par sebdu94 dans le forum C
    Réponses: 12
    Dernier message: 19/01/2008, 09h43
  2. Sortie d'une boucle
    Par NELLLY dans le forum MATLAB
    Réponses: 11
    Dernier message: 14/01/2008, 19h36
  3. Réponses: 1
    Dernier message: 18/10/2007, 17h13
  4. [langage] condition de sortie d'une boucle
    Par perlaud dans le forum Langage
    Réponses: 3
    Dernier message: 23/09/2004, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo