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 :

Résultat d'une requête dans une variable...


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut [Résolu] Résultat d'une requête dans une variable...
    Bonjour a tous

    J'aimerais mettre le résultat d'un SELECT dans une variable comment puis je faire je suis bloqué ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ADOConnection1:=TADOConnection.Create(nil);
        ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+'C:\Documents and Settings\Hoegaarden\Mes documents\Cours\Programmation\dah0o project\Guichet.mdb'+';';
        ReqSQL:= TADOCommand.Create(nil);
        ReqSQL.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+'C:\Documents and Settings\Hoegaarden\Mes documents\Cours\Programmation\dah0o project\Guichet.mdb'+';';
        ReqSQL.CommandText := 'select max(numero_mouvement) as nmvt from mouvements';
        ResSQL:=ReqSQL.Execute;
        If ResSQL.EOF then
        nm :=1
        else
        nm:= ResSQL;
        end;

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Cela ne te renvoit pas d'ensemble de résultat car tu emploies la méthode execute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ResSQL:=ReqSQL.Execute;
    Il faut dans ce cas utiliser la méthode Open;

    et de plus tu ne peux pas utiliser un TADOConnexion

    Essaie un truc comme cela

    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
     
      nm := 0;
      with TADOQuery.Create(self) do
      try 
        ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+'C:\Documents and Settings\Hoegaarden\Mes documents\Cours\Programmation\dah0o project\Guichet.mdb'+';'; 
        sql.add('select max(numero_mouvement) as nmvt from mouvements'); 
        try
          open;
          if not isEmpty
            then nm := fields[0].asInteger;
        except
          raise;
        end;
      finally
        Free;
      end;
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  3. #3
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Je comprends rien il ne rempli pas ma variable y a pas de message d erreur mais il ne me rempli pas ma variable

  4. #4
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Et si tu fais cela qu'est-ce que tu obtiens ?

    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
     nm := 0; 
      with TADOQuery.Create(self) do 
      try 
        ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+'C:\Documents and Settings\Hoegaarden\Mes documents\Cours\Programmation\dah0o project\Guichet.mdb'+';'; 
        sql.add('select max(numero_mouvement) as nmvt from mouvements'); 
        try 
          open; 
          if not isEmpty 
            then begin
                      nm := fields[0].asInteger; 
                      showMessage('max = '+fields[0].asString);
                   end
            else showMessage('requête vide');
        except 
          raise; 
        end; 
      finally 
        Free; 
      end;
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  5. #5
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Ca me donne max = 30
    C'est a dire que la requete renvoie bien qq chose

  6. #6
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Et oui cela te rend quelque chose...

    Si ce traitement est dans une fonction utilise alors result pour récupérer ce qui est assigné à ta variable nm.

    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
     
    function mainForm.getMaxHoegaarden:integer;
    begin
      result := -1;
    with TADOQuery.Create(self) do 
      try 
        ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+'C:\Documents and Settings\Hoegaarden\Mes documents\Cours\Programmation\dah0o project\Guichet.mdb'+';'; 
        sql.add('select max(numero_mouvement) as nmvt from mouvements'); 
        try 
          open; 
          if not isEmpty 
            then result := fields[0].asInteger; 
        except 
          raise; 
        end; 
      finally 
        Free; 
      end; 
    end;
    et tu utilises cette fonction de la facon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      nm := getMaxHoegaarden;
    si nm vaut -1 cela veut dire que cela n'a pas été calculé.

    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  7. #7
    Membre habitué Avatar de Hoegaarden
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2004
    Messages : 362
    Points : 175
    Points
    175
    Par défaut
    Ok merci Beaucoup
    Ca marche !!

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

Discussions similaires

  1. Réutiliser des données d'une requête dans une requête
    Par mims1664 dans le forum Requêtes
    Réponses: 12
    Dernier message: 06/02/2009, 14h12
  2. Résultat d'un champ d'une requête dans une variable
    Par PsychedeChed dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/01/2009, 12h50
  3. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  4. Réponses: 2
    Dernier message: 02/06/2006, 11h26
  5. Réponses: 4
    Dernier message: 01/12/2005, 14h36

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