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 :

Execution une requete Sql sur delphi


Sujet :

Delphi

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Execution une requete Sql sur delphi
    Bonjour
    je travail sur un SGBD sql server 2012 et sur delphi7 comme EDI
    je voulais exécuter une requete SQL et afficher le resultat sur un dbgrid ,toutes est relier (Datasource et Adoquery)
    mais le probleme quand je compile le programme une erreur comme celle là (Syntaxe incorrecte vers le mot clé 'Where')
    voila mon code source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure TFMouvement_art.SpeedButton1Click(Sender: TObject);
    begin
    with query1 do
      begin
        sql.Clear;
        SQL.Text :='select agent.nom_agent, agent.prénom, art.code_ar, decharge.num_dech, utilisateur.code_utilisateur, utilisateur.nom_util ';
        sql.Text:='from agent, art, decharge, ligne_decharge, utilisateur';
        sql.Text:='where agent.code_agent=decharge.code_agent and art.code_ar=ligne_decharge.code_ar and decharge.num_dech=ligne_decharge.num_dech and utilisateur.code_utilisateur=decharge.code_utilisateur and art.code_ar='''+dblookupcombobox1.text+'''';
        active:=true;
    end;
    end;

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    L'affectation de valeur à la propriété Text la réinitialise (Text est de type TStrings)
    2 possibilités :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        SQL.Text := 'select agent.nom_agent, agent.prénom, art.code_ar, decharge.num_dech, utilisateur.code_utilisateur, utilisateur.nom_util'#13#10 +
          'from agent, art, decharge, ligne_decharge, utilisateur'#13#10 +
          'where agent.code_agent=decharge.code_agent and art.code_ar=ligne_decharge.code_ar and decharge.num_dech=ligne_decharge.num_dech and utilisateur.code_utilisateur=decharge.code_utilisateur and art.code_ar=' + QuotedStr(dblookupcombobox1.Text);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        SQL.Clear;
        SQL.Add('select agent.nom_agent, agent.prénom, art.code_ar, decharge.num_dech, utilisateur.code_utilisateur, utilisateur.nom_util');
        SQL.Add('from agent, art, decharge, ligne_decharge, utilisateur');
        SQL.Add('where agent.code_agent=decharge.code_agent and art.code_ar=ligne_decharge.code_ar and decharge.num_dech=ligne_decharge.num_dech and utilisateur.code_utilisateur=decharge.code_utilisateur and art.code_ar=' + QuotedStr(dblookupcombobox1.Text));
    Philippe.

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    l'erreur vient de l'utilisation de SQL.Text:= au lieu de SQL.Add(); en fait en utilisant SQL.text le texte du SQL est uniquement celui de la ligne 9

    Autres remarques en vrac :
    préférez un SQL plus normé (et donc plus facile à lire) : Utilisez les clauses de jointure <table1> JOIN <table2> ON table1.champ=table2.champ
    préférez une requête paramétrée ou utilisez quotedStr() plutôt que de risquer un problème de '
    optimisez vos jointures (l'ordre de ces dernières à de l'importance)
    et utiliser des nom alias plus court pour les tables ne serait peut être pas un luxe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       SQL.Add('select agent.nom_agent, agent.prénom, art.code_ar, decharge.num_dech, utilisateur.code_utilisateur, utilisateur.nom_util ');
       sql.Add('from agent join  decharge on agent.code_agent=decharge.code_agent');
       sql.add('                join ligne_Decharge on decharge.num_dech=ligne_decharge.num_dech'); 
       SQL.Add('              join art on  ligne_decharge.code_ar=art.code_ar');
       sql.add('                join utilisateur on decharge.code_utilisateur=utilisateur.code_utilisateur'); 
        sql.add('where art.code_ar='+QuotedStr(dblookupcombobox1.text));
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Merci bcp mes amis,grace à vous je m'avance plus en plus

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2008, 14h26
  2. Comment executer une requete sql delete dans une jsp ?
    Par DarkWark dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 24/05/2006, 16h59
  3. [VB6] Ecrire une requete SQL sur plusieurs lignes!
    Par big x dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/05/2006, 16h28
  4. Ecrire une requete SQL sur plusieurs lignes
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 15/11/2004, 14h47
  5. Réponses: 2
    Dernier message: 03/05/2004, 12h13

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