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 :

Champ avec apostrophe dans une requête Query


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut Champ avec apostrophe dans une requête Query
    Bonjour ,

    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    with Query do
    begin
    Close;
    SQL.Clear;
     SQL.Add('select DISTINCT REF,text from  tab F' );
    SQL.Add('inner JOIN tab1 A ON A.REF = F.REF' );
    SQL.Add('where A.LIBELLE_AF='''+ComboBox.text+''' ');
    Prepare;
    open;
    end;
    tous marche bien sauf si j'ai un texte qui contient des ' dans ComboBox.text

    Alors comment faire pour éviter l'erreur

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    cela serait beaucoup plus facile d'utiliser la fonction QuotedStr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    with Query do
    begin
    Close;
    SQL.Clear;
     SQL.Add('select DISTINCT REF,text from  tab F' );
    SQL.Add('inner JOIN tab1 A ON A.REF = F.REF' );
    SQL.Add('where A.LIBELLE_AF='+QuotedStr(ComboBox.text));
    // prepare;  totalement inutile 
    open;
    end;
    et encore mieux d'utiliser une requête paramètrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with Query do
    begin
    Close;
    SQL.Clear;
    SQL.Add('select DISTINCT REF,text from  tab F' );
    SQL.Add('inner JOIN tab1 A ON A.REF = F.REF' );
    SQL.Add('where A.LIBELLE_AF=:P');
    ParamByName('P').asString:=combobox.text;
    // prepare; inutile dans ce contexte 
    open;
    end;
    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

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut
    Merci M SergioMaster,

    J'ai tester les deux solutions mais c'est la même chose , toujours l'erreur dans les caractères avec apostrophe.


    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    cela serait beaucoup plus facile d'utiliser la fonction QuotedStr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    with Query do
    begin
    Close;
    SQL.Clear;
     SQL.Add('select DISTINCT REF,text from  tab F' );
    SQL.Add('inner JOIN tab1 A ON A.REF = F.REF' );
    SQL.Add('where A.LIBELLE_AF='+QuotedStr(ComboBox.text));
    // prepare;  totalement inutile 
    open;
    end;
    et encore mieux d'utiliser une requête paramètrée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    with Query do
    begin
    Close;
    SQL.Clear;
    SQL.Add('select DISTINCT REF,text from  tab F' );
    SQL.Add('inner JOIN tab1 A ON A.REF = F.REF' );
    SQL.Add('where A.LIBELLE_AF=:P');
    ParamByName('P').asString:=combobox.text;
    // prepare; inutile dans ce contexte 
    open;
    end;

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut
    je sais pas pourquoi la requête ne marche pas avec QuotedStr( );

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    quelle erreur ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Avril 2011
    Messages : 177
    Points : 111
    Points
    111
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    quelle erreur ?
    Nom : erreur.png
Affichages : 679
Taille : 28,0 Ko

  7. #7
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    quelle base de données ? que donne un ShowMessage(Query.SQL.Text) ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    J'ai tester les deux solutions mais c'est la même chose , toujours l'erreur dans les caractères avec apostrophe.
    je suis très surpris et j'ai voulu en avoir le cœur net

    j'ai donc rapidement procédé a un test D3 + Paradox (<- donc vraiment basique)
    et mes 2 propositions fonctionnent, pour preuve
    Nom : Capturer.PNG
Affichages : 698
Taille : 36,3 Ko
    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

  9. #9
    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
    déjà t'as une erreur dans la requête
    select DISTINCT F.REF,text from tab F
    ou "A."
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. Réponses: 4
    Dernier message: 04/09/2010, 15h32
  3. Critères avec opérateurs dans une requête avec des champs calculés
    Par lmollard dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/05/2008, 18h53
  4. [REQUETE]Afficher un champ "case à cocher" dans une requête SQL-Access
    Par Amael ROCHE dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/04/2007, 11h07
  5. champs non accessibles dans une requête sélection
    Par Claire31 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 03/08/2006, 13h22

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