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 :

Comment récupérer le résultat d'un select Sql et TADOConnection


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Comment récupérer le résultat d'un select Sql et TADOConnection
    Bonjour je viens de débuter avec delphi j'ai crée une table avec MS SQL puis je l'ai rempli a partire de delphi mais maintenant j'ai le probléme de récupérer cette tabde mon bout de 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    var
      ADOConnection :  TADOConnection;
      ADOCommande : TADOCommand;
     
    begin
     
     
            ADOConnection := connection;
     
            // If still not open, bring up login prompt
            If not ( ADOConnection.Connected = true ) then
             try
               ADOConnection.LoginPrompt := true;
               ADOConnection.Open;
            except
              on E: Exception do
              begin
              end;
           end;
     
           // If still not connected, do not go further
            If ( not ( ADOConnection.Connected = true ) ) then
            exit;
     
          ADOCommande := TADOCommand.Create(nil);
          ADOCommande.Connection :=   ADOConnection;
     
          ADOCommande.CommandText := 'SELECT * FROM [test].[dbo].[joueur]';
          ADOCommande.Execute;
     
         end
    j'ai utilisé la requette select comme j'ai l'habitude de faire avec d'autre language mais je ne sais pas comment récupérer ma table pour que je peux faire une boucle est afficher certain champs.
    j'envisage de faire une boucle comme ca
    for i:=0 to Fields.Count-1 do
    begin
    ShowMessage(Fields[i].Value);

    Merci de votre aide

  2. #2
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    Salut
    je vois 2 solutions :
    soit tu change ton TADOCommand par un TADOQuery;
    Auquel cas tu peux attaquer les champs par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      MonADOQuery.Fields...
      MonADOQuery.FieldByName('...').AsInteger(ou string, float, ...)
    Ou alors tu rajoute une variable Recordset:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MonRecordset: _Recordset;
    begin
    ...
    MonRecordset := ADOCommande.Execute;
     
    MonRecordset.Fields[0].Value;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci rbh

    pour ce qu'est de TADOQuery je l'ai deja utilisé mais mon programme ca plante dans
    query.Connection := ADOConnection;

    Pour la deuxieme option ca march superbe mais je ne récupére que la premiere ligne de ma table avec la boucle

    MonRecordset := ADOCommande.Execute;
    for i:=0 to MonRecordset.Fields.Count-1 do
    test := MonRecordset.Fields[0].Value;

    ca me donne seulement la premiere ligne de ma table et MonRecordset.Fields.Count-1 me donne le nombre de colonne de ma table j'ai chercher autre chose mais je n'ai pas trouver.

    est ce que je ne peux pas récuperer toute la table comme avec SqlReader
    while(sqlreader.read())
    test := sqlreader['name'];

    Merci encore une fois pour ton aide rbh

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    peux tu préciser ce que tu veux faire des données récupérer car il sera peut être plus simple de te montrer une autre solution.

  5. #5
    rbh
    rbh est déconnecté
    Membre confirmé Avatar de rbh
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    384
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 384
    Points : 473
    Points
    473
    Par défaut
    Salut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    While not MonRecordset.Eof do
    begin
      ...
      MonRecordset.MoveNext;
    end;
    Les fields Sont bien le nombre de champs dans le résultat. Pour le nombre de résultats, je crois que c'est RecordCount, (à vérifier)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Merci rbh

    ca fait la faire mon probléme est résolu merci de ton soutien est ca me donne l'envi d'apprendre plus sur Delphi.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/03/2013, 12h27
  2. Réponses: 8
    Dernier message: 18/04/2008, 17h40
  3. Comment récupérer les résultats d'une requete SQL?
    Par verbal34 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 13/02/2008, 09h17
  4. [ADO.Net][C#] Comment récupérer des infos d'une table SQL ?
    Par lamojuli dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/01/2006, 16h00
  5. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07

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