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 :

Comment recuperer plusieurs lignes dans une requete ?


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Comment recuperer plusieurs lignes dans une requete ?
    Salut a tous , j ais um probleme avec 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
    with datamodule1.ADOQuery do begin
     
                        close;
                       SQL.Clear;
     
                           SQL.add('select * from Matable where ID =:idt') ;
                             Parameters.ParamByName('idt').Value := IDMatable;
                          open;
                           Active :=true;
                               First;
                               while not Eof do begin
                                   Var :=  fieldbyname('MonChamp').asstring;
                                   next;
                                 end;
    ma variable Var n est actualizé qu au final de ma requete , comment je pourrais garder les divers retour de Monchamp sachant que j ais plusieurs fields.

    Merci a tous

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1 519
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 519
    Points : 2 153
    Points
    2 153
    Billets dans le blog
    1
    Par défaut
    Bonjour et bienvenu sur les forums de Développez.com

    Je dirais que la meilleure solution à adopter pour résoudre votre problème dépends surtout de l'utilisation que vous voulez faire des données après.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci

    je voudrais garder ces donnes pour les utiliser apres dans la suite de mon apli , j

    ais essayer dans ume Tstringlist mais ça marche pas :S

    a+

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 654
    Points : 25 420
    Points
    25 420
    Par défaut
    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 GetChampValues(TableChampValues: TStrings; const IDMatable: Integer);
    begin
      with DataModule1.ADOQuery do // DataModule1, il faut lui choisir un autre nom !
      begin
        Close();
        SQL.Clear();
        SQL.Add('select * from Matable where ID =:idt') ;
        Parameters.ParamByName('idt').AsInteger := IDMatable;
        Open(); // cela Active !
        First;
        while not Eof do 
        begin
          TableChampValues.Add(FieldByName('MonChamp').AsString);
          Next();
        end;
      end;
    end;
    avec un Mémo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TFormTest.btnGetChampValues(Sender: TObject);
    begin
      GetChampValues(MemoValues.Lines, 1);
    end;
    avec une Liste en mémoire (pour faire simple, un membre dans une forme)

    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
    type
      TFormTest = class(TForm)
      private
        FTableChampValues: TStringList;
      public
        constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0); override;
        destructor Destroy; override;
      end;
     
    constructor TFormTest.CreateNew(AOwner: TComponent; Dummy: Integer = 0); 
    begin
      inherited CreateNew(AOwner, Dummy);
     
      FTableChampValues := TStringList.Create();
    end;
     
    destructor TFormTest.Destroy;
    begin
      FTableChampValues.Free();
     
      inherited Destroy();
    end;
     
    procedure TFormTest.btnGetChampValues(Sender: TObject);
    begin
      GetChampValues(FTableChampValues, 1);
    end;
    Sinon, "Comment recuperer plusieurs requetes? " ce n'est pas valable comme titre pour ce sujet mais plutôt "Comment recuperer plusieurs lignes dans une requete ? "

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ton aide , desolé si le sujet n est pas 'bullet proof'

    je vais essayer ta solution ..

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/07/2014, 23h11
  2. Réponses: 6
    Dernier message: 12/06/2007, 17h07
  3. Réponses: 1
    Dernier message: 28/03/2007, 12h23
  4. Comment récupérer le résultat d'une requête dans un tableau ?
    Par Kylen dans le forum Accès aux données
    Réponses: 1
    Dernier message: 14/06/2006, 19h32
  5. Réponses: 2
    Dernier message: 20/06/2005, 14h57

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