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 SQL ?


Sujet :

Bases de données Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut requete SQL ?
    bjr,
    j'ai fais ce code mais aucun résultat ?
    il me signal aucune erreur
    -----
    query1.sql.Clear;
    query1.sql.Add('select *');
    query1.sql.Add('from tablefacture');
    query1.sql.Add('where tablefacture.client=''c1''');
    query1.ExecSQL;
    query1.open;
    --------
    ou est le problème ?

  2. #2
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    je crois que le forum qui correspond le mieu à ce genre de question est "delphi et les bases de données".

    Mais bon, pour cette fois essaye plutot de mettre 'c1' et non "c1" ou utilise QuotedStr

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    si je fais ce que vous ditez, il me signal cet erreur
    [Erreur] Unitfrmetatfacture.pas(85): ')' attendu(e) mais identificateur 'c1' trouvé(e)
    ------
    le problème n'est pas dans la syntax, tout est juste
    mais je ne sais pas pour quoi aucun résultat
    -----------
    j'ai modifié mon programme avec un champ entier :

    query1.sql.Clear;
    query1.sql.Add('SELECT *');
    query1.sql.Add('FROM tablefacture');
    query1.sql.Add('WHERE tablefacture.v1=10');
    query1.ExecSQL;
    query1.open;
    query1.Active:=true;
    dbgrid1.Refresh;
    dbgrid1.Update;
    -----
    mais toujours rien
    pourquoi il n'exécute pas la requete ?

  4. #4
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    ExecSQL : permet d'executer une requete ne retournant pas de curseur : update, delete, insert, enfin tout sauf un select.
    Open : permet l'execution d'une requete qui retourne un curseur (select).
    Il faut en choisir une
    Dans ton cas, enlève le ExecSQL qui doit générer une erreur ce qui fait qu'il ne va pas plus loin.

    @++
    Dany

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    merci pour vos réponse,
    toujours aucun résultat si j'enlève ExecSQL
    ---------
    query1.sql.Clear;
    query1.sql.Add('SELECT *');
    query1.sql.Add('FROM tablefacture');
    query1.sql.Add('WHERE tablefacture.v1=10');
    query1.open;
    query1.Active:=true;
    dbgrid1.Refresh;
    dbgrid1.Update;
    -------

  6. #6
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    re,

    le Query1.active n'est pas necessaire non plus, par contre as-tu bien associé un datasource pour lier ton query à ton dbgrid ?

    @++
    Dany

  7. #7
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    oui j'ai associé un datasource et tous les champs s'affiches avec leurs valeur
    il m'affiche tous les enregistrements
    et je veux selectionner quelque uns selon la requete SQL
    j'enleve Query1.active
    toujour le contenu de dbgrid1 ne bouge pas

    je tiens a vous dire que query1 est de type adoquery
    --
    query1.sql.Clear;
    query1.sql.Add('SELECT *');
    query1.sql.Add('FROM tablefacture');
    query1.sql.Add('WHERE tablefacture.v1=10');
    query1.open;
    dbgrid1.Refresh;
    dbgrid1.Update;
    ---------

  8. #8
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    que veux-tu dire par : 'ne bouge pas ?' : il n'affiche rien ou il affiche toujours tous les enregistrements ?

    @++
    Dany

  9. #9
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    je veux dire qu'il affiche tous les enregistrements de la table,
    et quand je clique sur le botton ou j'ai fait la requete SQl,
    il ne l'exécute pas, c'est toujours les mêmes enregistrements..

  10. #10
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Ajoute query1.Close; avant le query1.SQL.Clear; ça devrait aller mieux.

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  11. #11
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    voilà mon nouveau code :
    --------
    query1.close;
    query1.sql.Clear;
    query1.sql.Add('SELECT *');
    query1.sql.Add('FROM tablefacture');
    query1.sql.Add('WHERE tablefacture.v1=10');
    query1.open;
    dbgrid1.Refresh;
    dbgrid1.Update;
    ------------
    c'est toujours rien
    je ne crois pas que le problème est dans le code

  12. #12
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Alors ton DBGrid ne doit pas être relié au Query.

    Essaye d'ajouter en première ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DBGrid1.DataSource.DataSet := query1;
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  13. #13
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Bonjour,

    Je te propose une variante pour t'assurer de ta liaison Query-DBGrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    dbgrid1.disablecontrols;
    try
    <div style="margin-left:40px">with tquery(dbgrid1.datasource.dataset) do
    begin
    close;
      sql.Clear;
      sql.Add('SELECT *');
      sql.Add('FROM tablefacture');
      sql.Add('WHERE tablefacture.v1=10');
      open;
    end;</div>finally
      dbgrid1.enablecontrols;
    end
    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  14. #14
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    dans l'inspecteur d'objet :
    DBGrid1.DataSource.DataSet := tablefacture;
    et quand j'ajoute cette ligne:
    DBGrid1.DataSource.DataSet := query1;

    a l'exécution il me signale une erreur :
    datasource1 : liaison de donnée circulaire nojn autorisée

  15. #15
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    merci pour tout le monde ,
    je crois que le problème est dans la liaison
    j'ai enlevé dans l'inspecteur d'objet cette valeur
    DBGrid1.DataSource.DataSet := tablefacture;
    et ça marche
    encore merci pour tout le monde

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

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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