1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Chaine SQL

Discussion dans 'Windev' créé par gapplicat, Mar 12, 2018.

Tags:
  1. gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Lors de l'ajout/modification/suppression via une requête SQL, il faut faire attention aux caractères spéciaux tels que l'apostrophe.

    Ainsi la requête suivante provoque une erreur à cause de l'apostrophe :
    Code (Text):

    sTxtRequete =  "SELECT * FROM CLIENT WHERE NOM = 'L'ATELIER' "
    HExécuteRequêteSQL(RQ_,sTxtRequete)
     
    La procédure suivante permet de pallier au problème :

    Code (Text):

    PROCEDURE VersChaineSQL(MonTexte)

    LaChaineConvertie est une chaîne = MonTexte

    LaChaineConvertie = Remplace(LaChaineConvertie,"\","\\")
    LaChaineConvertie = Remplace(LaChaineConvertie,"""","\""")
    LaChaineConvertie = Remplace(LaChaineConvertie,"'","\'")
    LaChaineConvertie = Remplace(LaChaineConvertie,Null,"\"+Null)

    RENVOYER LaChaineConvertie
     
    La requête devient alors :
    Code (Text):

    sTxtRequete =  "SELECT * FROM CLIENT WHERE NOM = '"+VersChaineSQL("L'ATELIER")+"' "
    HExécuteRequêteSQL(RQ_,sTxtRequete)
     
     
    Tags:
  2. Kill3rbko

    Kill3rbko Member

    Inscrit:
    Mar 8, 2018
    Messages:
    58
    J'aime reçus:
    21
    Merci pour l'astuce,

    J'utilise également les crochets pour les chaines de ce type.

    Code (Text):
    MonTexte est une Chaine
    sTxtRequete est une Chaine

    MonTexte = [
    L'ATELIER
    ]

    sTxtRequete =  [
    SELECT * FROM CLIENT
    WHERE NOM = '%1'
    ]

    sTxtRequete = Chaineconstruit(sTxtRequete,MonTexte)

    HExécuteRequêteSQL(RQ_,sTxtRequete)
    Attention code écrit à la volée ... mais le principe y est :)
     
  3. ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    371
    J'aime reçus:
    372
    Merci pour les astuces,
     

Partager cette page

Chargement...