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 :

variable dans requete SQL pour delphi


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Points : 29
    Points
    29
    Par défaut variable dans requete SQL pour delphi
    Re Re bonjour,

    q2.SQL.Add('select * from tache where nom_categorie=combobox1.text');
    q2.Open;
    q2.execsql;
    q2.Close;
    vous vous en doutez : q2 = un query
    mais là n'est pas la question : est ce que ma ligne SQL est correcte ? j'ai un doute sur la fin :

    nom_categorie=combobox1.text');
    Le tout est de choper les lignes de champs dont le champ "nom_categorie" = le text du combobox1 pour tout mettre dans un dbgrid.

    Sachez que les query, table, et autres data source sont en place. et les liens avec la base aussi. C'est juste ma requete sql qui doit pas être bonne et dans les tutoriaux on n'explique pas comment ça fonctionne avec une variable ( en l'occurance le text du combobox).

    Merci d'avance
    Murray Moore

  2. #2
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    q2.SQL.Add('select * from tache where nom_categorie=' + chr(39) + combobox1.text + chr(39));
    Ca devrais te faire une ligne comme cela.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  3. #3
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    C'est juste pour te dire que pour une requête de selection (SELECT),
    tu n'as pas besoin de l'ordre :ExecSQL.
    Et si tu ferme ta requête juste apres l'avoir ouverte... tu n'auras rien fait.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Et donc pour tenter de résumer:

    Requète de lecture -> Open
    Requète de mise à jour -> ExecSQL


    Pour la requète paramétrée:
    soit le code proposé par Harry
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    q2.SQL.Add('select * from tache where nom_categorie='+QuotedStr(combobox1.text));
    soit encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    q2.SQL.Add('select * from tache where nom_categorie=:leparametre');
    q2.SQL.ParamByName('leparametre').AsString:=combobox1.text;
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    je m'en suis rendu compte après !
    En tout cas c'est sympa ... petit à petit je me rappelle de mes cours de bts grace à vous ... ca fait déjà 3 problématiques que je règle petit à petit en cherchant ... ça fait du bien quand on fait F9 et que ça marche enfin !

    donc ce serait comme ça si je n'm'abuse ?

    q2.Open;
    q2.SQL.Add('select * from tache where nom_categorie=' + chr(39) + combobox1.text + chr(39)); ;
    q2.Close;
    Murray Moore

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    autre solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    q2.SQL.Add(
    Format('select * from tache where nom_categorie= %s ',[QuotedStr(combobox1.text)]));
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  7. #7
    Membre expérimenté
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Points : 1 331
    Points
    1 331
    Par défaut
    Citation Envoyé par socooooool
    je m'en suis rendu compte après !
    En tout cas c'est sympa ... petit à petit je me rappelle de mes cours de bts grace à vous ... ca fait déjà 3 problématiques que je règle petit à petit en cherchant ... ça fait du bien quand on fait F9 et que ça marche enfin !

    donc ce serait comme ça si je n'm'abuse ?
    Le Open tu le fais après avoir mis le SQL avec Add. Le Close c'est quand tu as fini d'afficher/interpréter les resultats de la requete.

    Attention le .NET sur PDA peut causer des chutes de cheveux

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut ça n'a pas marché pour moi pourquoi?
    Citation Envoyé par qi130 Voir le message
    Et donc pour tenter de résumer:

    Requète de lecture -> Open
    Requète de mise à jour -> ExecSQL


    Pour la requète paramétrée:
    soit le code proposé par Harry
    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    q2.SQL.Add('select * from tache where nom_categorie='+QuotedStr(combobox1.text));
    soit encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    q2.SQL.Add('select * from tache where nom_categorie=:leparametre');
    q2.SQL.ParamByName('leparametre').AsString:=combobox1.text;
    bonjour,

    voici mon exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var numero : integer;
    begin
         numero := strtoint (edit1.text);
         query1.SQL.ADD('SELECT * FROM facture WHERE facture.num_facture := parametre');
        query1.ParamByName('parametre').AsInteger(numero);
        query1.active := True;
        Label1.Caption := IntToStr(query1.FieldByName('num_facture').value);
    end;
    chaque fois il me donne erreur query1 : paramètre 'parametre' non trouvé
    je ne vois pas l'erreur merci de m'aider.

  9. #9
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 695
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 695
    Points : 13 133
    Points
    13 133
    Par défaut
    Il faut mettre les deux points à la bonne place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query1.SQL.ADD('SELECT * FROM facture WHERE facture.num_facture = :parametre');

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Il faut mettre les deux points à la bonne place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query1.SQL.ADD('SELECT * FROM facture WHERE facture.num_facture = :parametre');
    c vrais merci

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

Discussions similaires

  1. Concat dans requete sql pour sql server
    Par psycho_xn dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/09/2015, 17h10
  2. [MySQL] Syntaxe insertion variable dans requete SQL
    Par przvl dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/06/2015, 15h34
  3. Réponses: 2
    Dernier message: 30/01/2014, 00h51
  4. variable dans requete sql
    Par xian21 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/01/2009, 12h14
  5. [Debutant] Variables dans requete SQL
    Par Freygolow dans le forum C#
    Réponses: 11
    Dernier message: 21/05/2008, 09h14

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