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

WinDev Discussion :

Quote et double quote dans les requêtes paramétrées


Sujet :

WinDev

  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut Quote et double quote dans les requêtes paramétrées
    Bonjour à tous,

    Je suis en train de faire une requête avec plein de DECODE, de CASE et de CONCAT... (ouah.... trop la méga classe)

    Et là je pète un peu un plomb parce que je construit avec ma requête une chaîne avec des quotes ', j'ai donc doublé les quotes comme de coutume en SQL, normal quoi !
    L'interpréteur de requête du centre HF exécute ma requête sans soucis mais lorsque je veux l'utiliser dans un état, la requête ne fonctionne pas... Aucune erreur, l'état ne s'affiche pas.... quand je commente la ligne avec les quotes, la requête s'exécute...

    Il s'agit d'une "requête paramétrée"...

    Le \ ne fonctionne pas non plus... si quelqu'un a une piste, help please !!!!
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    ...petite précision...

    Voici la ligne en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DECODE(Contrat,0,'qu''il n''a pas été fait de contrat de mariage',CONCAT('qu''un contrat de mariage a été reçu le ', WL.DateVersChaîne(Con_Date,'DD/MM/YYYY'), ' par Me', Not_Prenom,' ', Not_Nom, ' notaire à ', Not_Commune)) AS contrat_pas_contrat,
    Pour te faciliter la lecture, ami internaute, j'ai viré les autres instructions de mon select.... et pis tout le reste de ma requête aussi d'ailleurs !

    J'ai tenté de forcer la main à Windev
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DECODE(Contrat,0,'qu',WL.caract(39),'il n',WL.caract(39),'a pas été fait de contrat de mariage',CONCAT('qu',WL.caract(39),'un contrat de mariage a été reçu le ', WL.DateVersChaîne(Con_Date,'DD/MM/YYYY'), ' par Me', Not_Prenom,' ', Not_Nom, ' notaire à ', Not_Commune)) AS contrat_pas_contrat,
    mais ça marche pas !!! je récupère "qu'"
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Bonjour,

    je peux me tromper, mais il me semble que pour faire apparaître les apostrophes dans une chaîne concaténée, il convient d'utiliser le caractère d'échappement, sous mySQL c'est \ donc pour faire apparaître "c'est qui ?" ça donne un truc du style "c\'est qui ?"

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Merci pour ta réponse... mais le caractère d'échappement en Hyperfile est un ' (on double les quotes).

    J'ai trouvé une solution de chacal :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    REPLACE(DECODE(Contrat,0,'qu#il n#a pas été fait de contrat de mariage',CONCAT('qu#un contrat de mariage a été reçu le ', WL.DateVersChaîne(Con_Date,'DD/MM/YYYY'), ' par Me', Not_Prenom,' ', Not_Nom, ' notaire à ', Not_Commune)),'#',WL.CARACT(39)) AS contrat_pas_contrat,
    Va comprendre pourquoi ça passe ça....
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Si je comprends bien c'est une requête que tu place dans une chaîne et que tu exécute avec HExécuteRequêteSQL() (et non pas une requête faite avec l'éditeur).

    Tu dis qu'elle fonctionne avec "L'interpréteur de requête du centre HF", tu veux dire avec l'outils "WDSql - Interrogateur SQL" (pour être sur).

    Quelle ne fonctionne pas quand tu veux l'utiliser dans un état. Mais qu'elle fonctionne quand tu commente la ligne DECODE.

    Si tu exécutes cette requête par HExécuteRequêteSQL() sans rentrer dans l'état, est-ce qu'elle fonctionne ? (pense au hRequêteSansCorrectionHF)
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Salut !

    Citation Envoyé par laurent30s Voir le message
    Si je comprends bien c'est une requête que tu place dans une chaîne et que tu exécute avec HExécuteRequêteSQL() (et non pas une requête faite avec l'éditeur).
    Non c'est une requête faite avec l'éditeur mais directement en SQL.

    Tu dis qu'elle fonctionne avec "L'interpréteur de requête du centre HF", tu veux dire avec l'outils "WDSql - Interrogateur SQL" (pour être sur).
    Non je parle du pauvre "worksheet" sans coloration syntaxique du centre de controle hyperfile (onglet SQL).

    Quelle ne fonctionne pas quand tu veux l'utiliser dans un état. Mais qu'elle fonctionne quand tu commente la ligne DECODE.
    Je l'utilise en source de données de mon état pour pouvoir binder les rubriques au champ BDD (je trouve que c'est plutôt pratique en général !).

    Si tu exécutes cette requête par HExécuteRequêteSQL() sans rentrer dans l'état, est-ce qu'elle fonctionne ? (pense au hRequêteSansCorrectionHF)
    J'ai pas testé.... ça correspondrait pas au contexte d'utilisation. J'ai vraiment l'impression que c'est le binding qui pose pb.... j'ai pas testé non plus dans une fenêtre...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/12/2008, 12h00
  2. Majuscules - minuscules dans les requêtes
    Par calogerogigante dans le forum Requêtes
    Réponses: 11
    Dernier message: 25/10/2005, 11h36
  3. Accents non pris en compte dans les requêtes SELECT
    Par YanK dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/08/2005, 10h57

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