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 :

Requete parametrée TADOQuery


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier Avatar de cdlr27
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 96
    Points : 76
    Points
    76
    Par défaut Requete parametrée TADOQuery
    J'ai repris un ancien post (17/11/2002) et cela m'a permit d'initialiser ma première requète paramétrée. Mais je bute sur une erreur :
    EOLeException 'Erreur de synthxe(operateur absent) dans l'expression 'vente.IdProd = ? P1'
    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
    procedure TFtest.Button1Click(Sender: TObject);
    var q, r : string;
    begin
      list.Items.Clear;
      with TADOQuery.Create(self) do
      try   //finally
        ConnectionString:='Provider=Microsoft.jet.OLEDB.4.0; Data source='+'C:\Documents and Settings\Propriétaire\Mes documents\_Delphi\Stocks\gestion_stock.mdb'+';';
        sql.add('Select vente.IdProd, Sum(vente.nombre) as SNbvendu FROM vente ');
        sql.Add('GROUP BY vente.IdProd');
        sql.Add('HAVING vente.IdProd = : P1');
        q:=edit1.Text;
        parameters[0].Value := StrToInt(edit1.Text);
        r:=parameters[0].Value;
        try  // except
          open;
          if not isEmpty then begin
      list.Items.Add('Article : '+ Fields[0].AsString +'   max = '+ Fields[1].AsString);
          end; // Not isEmpty
        except
          raise;
        end;
      finally
        free;
        end;
    end;
    q & r sont là comme témoins
    et sans la ligne 'sql.add('HAVING.....)
    list.items me retourne le premier enregistrement de la requète.

    Qui peut me suggérer la correction de synthaxe.

    Marcel

  2. #2
    Membre émérite
    Avatar de NoisetteProd
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    1 905
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 905
    Points : 2 614
    Points
    2 614
    Par défaut
    Salut, c'est une instruction SQL que tu envoie à ton query, il ne faut donc pas mettre := !

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql.Add('HAVING vente.IdProd = P1');
    C'est quoi P1 ?? une variable delphi ?? Si oui, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql.Add('HAVING vente.IdProd = '+ tranformationdetavaleur(P1) );

    J'espère que ca peut t'aider...

  3. #3
    Seb
    Seb est déconnecté
    Membre régulier

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 81
    Points : 97
    Points
    97
    Par défaut
    Salut,

    Je ne sais pas si c'est le problème mais :
    Entre les : et le paramètre (P1), il ne faut pas d'espace.

    Essayes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql.Add('HAVING vente.IdProd = :P1');
    A+,

    Seb.

  4. #4
    Membre régulier Avatar de cdlr27
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    96
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 96
    Points : 76
    Points
    76
    Par défaut
    Merci les collègues
    Dans l'ordre, pourquoi P1, c'était dans l'exemple, donc je recopie !!!!
    Quelle est la liberté de synthaxe à cet endroit.
    Toujours sous ADO, peut-t'on référencer les paramétres par un nom (type ParamByName).

    Le deuxième conseil m'a sorti de l'impasse. (Ah! cette satanée synthaxe).

    Marcel

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

Discussions similaires

  1. Formulaire et requete parametrée
    Par Terminator dans le forum Requêtes et SQL.
    Réponses: 17
    Dernier message: 16/02/2007, 20h20
  2. vb et excell: données provenant d'une bd, requete parametrée
    Par cari dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/02/2007, 21h38
  3. Requete parametré a affiché
    Par kaiser59 dans le forum ASP
    Réponses: 7
    Dernier message: 01/02/2007, 14h12
  4. Requete parametrée par un formulaire
    Par kimar dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 12/07/2006, 16h42
  5. Requete parametrée avec CristalReport de VB6?
    Par bonsam dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/12/2005, 09h22

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