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 :

ADOQUERY au comportement étrange


Sujet :

Bases de données Delphi

  1. #1
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut ADOQUERY au comportement étrange
    Bonjour à tous

    Voilà je m'arrache les cheveux sur un problème très simple.
    J'ai un ADOQuery qui exécute la requête suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT Nom FROM t_table
    WHERE Nom>"g" AND Nom<"h"
    Si je la rentre tel quel dans la propriété SQL de mon objet TADOQuery ça fonctionne
    Par contre si je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    QUERY.SQL.Add('SELECT Nom FROM t_table');
    Lettre1:='g';
    Lettre2:='h';
    Req:='WHERE Nom>"'+Lettre1+'" AND Nom<"'+Lettre2+'"';
    QUERY.SQL.Add(Req);
    Lorsque j’exécute Query.Open. J'ai un message d'erreur comme quoi il y a un problème de syntaxe sur la seconde ligne (WHERE Nom>"g" AND Nom<"h").
    J'ai examiné le contenu de Req et il est identique à WHERE Nom>"g" AND Nom<"h"

    J'utilise Delphi Xe8 et MySQL

    Je dois avouer que la je ne comprend plus rien
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser une requête paramétrée

    Ton code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QUERY.SQL.Add('SELECT Nom FROM t_table');
    Lettre1:='g';
    Lettre2:='h';
    Req:='WHERE Nom> :Lettre1 AND Nom < :Lettre2 ';
    QUERY.SQL.Add(Req);
    Il est possible aussi d'utiliser QuotedStr('g')

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    QUERY.SQL.Add('SELECT Nom FROM t_table');
    Lettre1:='g';
    Lettre2:='h';
    Req:='WHERE Nom > ' +  QuotedStr('g') + ' AND Nom < ' + QuotedStr('h');
    QUERY.SQL.Add(Req);
    [/CODE]

    C'est un peu le bazar dans mon explication.

    A+

  3. #3
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    C'était une requête paramétrée à l'origine et je me suis fait jeté par une autre erreur. J'ai pensé que ça venais de là d'où le passage à une requête non paramétrée.
    A force de tripatouillage du code ça a fini par marcher tel que. Mon hypothèse est qu'il devait avoir un caractère non visible quelque part et j'ai du l'effacer lors de mes essais. Mais bon je n'exclus pas non plus une malédiction vaudou

    Par contre je retiens le QuotedStr je ne connaissais pas.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  4. #4
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    peut être que je vais dire une bétise; tu fais ou fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Lettre1:='g';
    Lettre2:='h';
    QUERY.SQL.Text:='SELECT Nom FROM t_table WHERE Nom> "'+Lettre1+'" AND Nom< "'+Lettre2+'" ;';
    sans utiliser "add", ne me demande pas pourquoi, mais avec ado+VFOXPRO quelque fois j'avais des étranges erreur
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  5. #5
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Je fais toujours un clear. par contre dans un autre programme j'ai une procédure qui utilise la seconde solution car je charge ma requête à partir d'un fichier. Jusqu'à présent je n'ai pas eu de soucis.
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

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

Discussions similaires

  1. [Forms6i] Un IF-ELSIF au comportement étrange
    Par lafouine dans le forum Forms
    Réponses: 11
    Dernier message: 13/09/2005, 15h40
  2. Comportement étrange apres une désinstallation
    Par Sunchaser dans le forum Excel
    Réponses: 4
    Dernier message: 06/08/2005, 19h44
  3. comportement étrange d'une jointure ...
    Par amenis dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 10/02/2005, 21h27
  4. [Système][Runtime][Exec] Comportement étrange au lancement de BeSweet
    Par divxdede dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 06/06/2004, 09h54
  5. Réponses: 2
    Dernier message: 22/09/2003, 11h23

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