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

Bases de données Delphi Discussion :

Boucle avec un TIBDataSet


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut Boucle avec un TIBDataSet
    Salut,

    Si je fais cela, ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MonIBDataSet.First;
    for N:=1 to 13 do begin
      ...
      MonIBDataSet.Next;
    end;
    Mais cela ne marche pas, pourquoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MonIBDataSet.First;
    while not MonIBDataSet.Eof do begin
      ...
      MonIBDataSet.Next;
    end;
    Il ne prend que le premier enregistrement.

  2. #2
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Ecrit de cette façon, l'erreur est difficile à dénicher

    Essaie de procéder par étape. C'est à dire, écrire quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    MonIBDataSet.First;
    ShowMEssage('Nombre d''enregistrement = '+IntToStr(MonIBDataSet.RecordCount));
    if(MonIBDataSet.BOf) then ShowMessage('Début')
    else ShowMessage('Erreur BOF')
    while not MonIBDataSet.Eof do begin 
      ...//D'autres test pour savoir à quel numéro d'enregistrement on se trouve 
      MonIBDataSet.Next; 
    end;
    Je suppose que les traitements dans les boucles For et While sont identiques.

    A+

  3. #3
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    Je n'y comprend rien.
    Il indique 1 enregistrement et pourtant, il en affiche plusieurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMEssage('Nombre d''enregistrement = '+IntToStr(MonIBDataSet.RecordCount));
    Autre chose de bizarre.
    J'exécute le même code dans les 2 boucles.
    L'un marche mais pas l'autre.

    Pour info, j'affiche un gantt avec TChart.

  4. #4
    Expert éminent sénior

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 101
    Points
    19 101
    Par défaut
    Pour RecordCount c'est normal. Il ne fonctionne presque jamais : il rertourne dans la plupart des cas 0 ( dataset vide ) ou 1 ( dataset non vide ).
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

  5. #5
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 171
    Points : 126
    Points
    126
    Par défaut
    C'est bizarre, parce que j'ai toujours utilisé RecordCount et il a toujours marché sauf depuis 1 ou 2 mois ou il seme la M...

    En tous cas, mon problème est résolu avec la boucle while.

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

Discussions similaires

  1. Boucle avec chaine vide : je comprends pas
    Par Zapan dans le forum Langage
    Réponses: 8
    Dernier message: 14/02/2007, 17h27
  2. [DEBUTANT] sortir d'une boucle avec un touche particulière
    Par thibouille dans le forum Débuter
    Réponses: 4
    Dernier message: 25/10/2005, 06h44
  3. Probleme de boucle avec des processus sous UNIX
    Par sebastieng dans le forum POSIX
    Réponses: 6
    Dernier message: 15/10/2005, 18h57
  4. Boucle avec variable à incrémenter
    Par snoop dans le forum Linux
    Réponses: 2
    Dernier message: 19/03/2004, 11h07
  5. boucle avec condition d'arret changeante
    Par NicoH dans le forum Langage
    Réponses: 3
    Dernier message: 10/06/2003, 11h48

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