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 :

utilisation incorrecte du mot clé


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut utilisation incorrecte du mot clé
    Bonjour à tous !

    Moi qui me disait solennellement que j'allais me passer de ce forum est solutionner tout seul mes problèmes Delphi.... c'est pas gagné.

    L'erreur, c'est celle-ci :
    Utilisation incorrecte du mot-clé

    Le code c'est celui-ci dans laquelle est supposée se trouver la petite chose qui m'a pris deux heures de ma vie pour rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Query3.sql.clear;
            Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'") values(:a)');
            Query3.Params[0].AsString:=label11.Caption;
            Query3.ExecSQL;
    Ma question est sans doute la même que tout ceux qui postent sur le net : "C'est quoi l'erreur ?" comme dirait l'autre...

    Merci pour la lecture, et surtout merci pour la réponse ! parce qu'il est trois heures moins 20 et je sèche graaaaaaaaaaaaave...... !

    Kevin

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    il est 3h moins 20 ? ça se voit
    Faut faire dodo les yeux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Query3.sql.clear;
            Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'") values(:a)');
            Query3.Params[0].AsString:=label11.Caption;
            Query3.ExecSQL;
    Values est un mot réservé , bien sur, voir les insert
    le select demandé ne serait pas plutot genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT prixentree FROM entree WHERE nomentree =:a)
    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query3.sql.clear;
            Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree  ="'+label11.Caption+'");
            Query3.ExecSQL;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    Je me suis mal exprimé avec la fatigue.
    Ce que je cherche à faire, c'est récupérer le prix d'une entrée appelé [entree_ajout]. Entree_ajout fait référence à une string qui peut varier selon l'utilisateur, c'est donc pour ça qu'il est entre "'+/+'". Après l'avoir récupérée, je voudrais que le label11 me l'affiche mais mon véritable problème, c'est que je ne sais pas quel est le code pour récupérer les résultats d'une requête sql SELECT sous Delphi. J'ai pensé que ce serait la même que pour une INSERT mais non. Donc voila, je remets mon code :

    Query3.sql.clear;
    Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'") values(:a)');
    Query3.Params[0].AsString:=label11.Caption;
    Query3.ExecSQL;
    Merci d'avance

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Il ne faut pas utiliser les doubles quotes mais bien les simples.
    Cela donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree = '''+entree_ajout+''') values(:a)');

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 593
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par maccloud
    Ce que je cherche à faire, c'est récupérer le prix d'une entrée appelé [entree_ajout]. Après l'avoir récupérée, je voudrais que le label11 me l'affiche
    pour que label11 'récupére' la valeur il faut ouvrir la query3

    Query3.Active:=True ou Query3.Open;
    puis
    Labe11.Caption:=Query3.FieldByName('PrixEntree').asString ; ou Query3.Field[0].asString ou .....
    puis fermer
    Query3.Active:=False ou Query3.Close;


    Citation Envoyé par maccloud
    je ne sais pas quel est le code pour récupérer les résultats d'une requête sql SELECT sous Delphi.
    au risque de me répéter VALUES(:A) fait partie de la syntaxe d'un INSERT pas d'un SELECT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Query3.SQL.Active:=False;  // pour être sur
    Query3.sql.clear;
    Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'");
    Query3.Active:=True;
    Label11.Caption:=Query3.FieldByName('PrixEntree').asString;
    Query3.Active:=False;

    pour ce qui est des Quotes ou doubles Quotes les deux sont valides
    il y a aussi QuotedStr(entree_ajout)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    Rebonjour, un grand merci pour vos réponses !
    Je connaissais pas le query3.active par contre le open si, j'avais bêtement oublié....

    Maintenant mon code est devenu cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Query3.sql.clear;
            Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'")');
            Query3.open;
            Query3.Fields[0].asString:=label11.caption;
            Query3.close;
    Et il ne fonctionne toujours pas lol. Je vous mets l'erreur :
    Le projet XXX.exe a provoqué une classe d'exception EDBEngineError avec le message 'Utilisatin incorrecte du mot-clé.
    Elément: )
    Numéro de ligne 1'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.
    Je ne sais vraiment pas ce que ça veut dire, mais avant que je ne modifie le code ci dessus, il me renvoyait à la ligne verte en la surlignant de bleu. Maintenant c'est pas a pas. JE me dis que lerreur doit probablement venir d'une autre ligne... Qu'en pensez-vous Sherlock?


  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 14
    Par défaut
    Citation Envoyé par maccloud
    Rebonjour, un grand merci pour vos réponses !
    Je connaissais pas le query3.active par contre le open si, j'avais bêtement oublié....

    Maintenant mon code est devenu cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            Query3.sql.clear;
            Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'")');
            Query3.open;
            Query3.Fields[0].asString:=label11.caption;
            Query3.close;
    Et il ne fonctionne toujours pas lol. Je vous mets l'erreur :


    Je ne sais vraiment pas ce que ça veut dire, mais avant que je ne modifie le code ci dessus, il me renvoyait à la ligne verte en la surlignant de bleu. Maintenant c'est pas a pas. JE me dis que lerreur doit probablement venir d'une autre ligne... Qu'en pensez-vous Sherlock?

    C'est bon, je viens de trouver. Une apostrophe mal placée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'")';
    Qui est devenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query3.SQL.Add('SELECT prixentree FROM entree WHERE nomentree ="'+entree_ajout+'"');
    Plus c'est petit, plus c'est mignon il paraît... Plus c'est chiant !

    Et maintenant, il me dit que ma table entree n'existe pas alors que pour pouvoir selectionner une entree, il faut qu'il ai listé toutes les occurences dans une listbox, ce qu'il fait très bien depuis le debut, et qu'il continue de faire.

    En plus simple : j'active la form donc il va chercher les occurences et me les affiche toutes sans exeption. C'est cool. Et quand je veux qu'il aille chercher le prix d'une occurence donnée, l'erreur dit que la table n'existe pas...
    Ca me fatigue............

    Bizarrement, il recherche les fichiers de BD (entree.DB, entree.DBF, etc) dans le dossier de l'.exe). Donc pour remplir la listbox, il doit donc chercher ailleurs. La solution serait de lui signaler l'autre adresse à la place de la fausse donc....
    Si c'était pas un pc portable, la souris ferait le deuil du clavier explosé contre le mur....
    Sherlock? toujours avec moi?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/10/2008, 21h35
  2. [VB6] erreur de compilation:utilisation incorrecte du mot clé New
    Par fouf_01 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 17/05/2006, 16h22
  3. erreur : utilisation incorrecte du mot clé
    Par StyleXP dans le forum Bases de données
    Réponses: 3
    Dernier message: 22/02/2006, 09h24
  4. Utilisation incorrecte de Null ?
    Par illight dans le forum Access
    Réponses: 2
    Dernier message: 23/11/2005, 10h27
  5. [PROCEDURE STOCKEE]Utilisation incorrecte de INSERT
    Par BaronSamdi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/03/2004, 16h26

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