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 :

TMyquery et recordCount


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut TMyquery et recordCount
    Bonjour,
    je souhait connaitre le nombre de ligne que me retourne ma requête (faite par un composant TMyQuery) après exécution.

    Pour cela j'ai fait le code suivant.

    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
    16
    17
    procedure TFormNewArea.MyQueryChannelAfterExecute(Sender: TObject;
      Result: Boolean);
    var
     indice : integer;
    begin
      inherited;
      indice := 0;
      if MyQueryChannel.RecordCount <> 0 then
      begin
        while not EOF do
        begin
          indice := indice + 1;
          AdvStringGrid1.Cells[indice,1] := MyQueryChannel.Fields[0].Value;
          Next;
        end;
      end;
    end;
    Mais je ne sais pas pourquoi, je ne passe jamais mon If, RecordCount valant tous le temps zéro, alors que ma requête s'effectue correctement.
    Un indice ?
    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Salut,

    J'ai déjà lu sur le site que RecordCount posait des soucis ...
    Le mieux à faire, c'est une requête SQL qui te retournera le nombre d'enregistrement ... Ca sera surement plus sûr ...

    J'espère t'avoir aidé.
    A+

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Il y a aussi IsEmpty, et dans ton cas le EOF va vérifier avant, donc tu peux enlever le test !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut
    Bonjour,
    lorsque j'ai rencontré ce problème je me suis renseigné et j'ai aussi lu qu'il valait mieux utilisé Count.
    Mais j'ai quand même posé cette question pour comprendre un peu plus l'utilisation de MyQuery et essayé de progresser.
    Merci

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 152
    Par défaut
    Re bonjour,
    je pense que mon problème vient que je regarde l'état du RecordCount avec l'événement "AfterExcecute".
    Si je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyQuery.execute;
    MyQuery.recordCount;
    dans ce cas, le recordCount prend une valeur correcte.
    Sur quel peut donc être le type d'événement qui convient à la place de AfterExecute ? J'en ai testé quelqu'un mais rien de concluant.

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Pourquoi passer par un évènement, tu peux très bien faire une méthode FillGrid a appeler après un Execute ... il est bien mieux de maitriser ce que l'on fait que de tout déporté dans des comportements automatiques (pense à la maintenance du programme plus tard ...)
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. [Performance] RecordCount ou select Count(champ) ?
    Par shwin dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 28/09/2004, 17h37
  2. procédures stockées et recordcount-1
    Par Josephe dans le forum ASP
    Réponses: 2
    Dernier message: 19/03/2004, 12h06
  3. Recordcount sur une table filtrée
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/03/2004, 00h05
  4. [VB6] [ADO] Problème avec recordcount
    Par MASSAKA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/01/2003, 11h45
  5. [XMLRAD] RecordCount ?
    Par Pm dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/11/2002, 14h59

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