Doublage des simple quote ' pour les champs sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 922 fois - Téléchargée 31 fois

Contenu du snippet

Très pratique pour l'utilisation en SQL des champs mémo. Qui doivent respecter une syntaxe particulière avec les '

Source / Exemple :


Public Function DoubleQuote(ByVal pValue As String) As String
        ' On double le simple "'" dans un string pour ne pas avoir de problème
        ' dans les Qry
        Dim i As Integer
        Dim s As String

        For i = 1 To pValue.Length
            If Mid(pValue, i, 1) = "'" Then
                s += "''"
            Else
                s += Mid(pValue, i, 1)
            End If
        Next
        Return s
    End Function

A voir également

Ajouter un commentaire Commentaires
Messages postés
27
Date d'inscription
samedi 28 décembre 2002
Statut
Membre
Dernière intervention
12 avril 2009

Mais Nix à tout à fait raison. J'ai fait cette fonction quand j'ai débuté, il n'y à d'ailleur pas très ongtemps. Et je n'ai pas réfléchi par la suite. Stupide de ma part.
Messages postés
129
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
12 février 2009

Ok ok...
C'est vrai que je ne suis pas encore décidé à plonger dans le .Net...
Amitiés à Nix
jmluc
Messages postés
831
Date d'inscription
samedi 15 mai 1999
Statut
Modérateur
Dernière intervention
18 juillet 2009

La source est indiquée comme .NET c'est pour ça que j'ai apporté mon commentaire en fonction de VB.NET
Messages postés
129
Date d'inscription
mercredi 24 septembre 2003
Statut
Membre
Dernière intervention
12 février 2009

Désolé mais je vois pas ce qui_ est spécifique à .Net...dans la fonction de michelsto...
Quand à celle de Nix, effectivement return...c'est du .Net mais en vb6 on mettrait :
Public Function DoubleQuote(ByVal pValue As String) As String
DoubleQuote=Replace(pValue,"'","''")
End Function
Ca doit marcher comme ça.
JM
Messages postés
831
Date d'inscription
samedi 15 mai 1999
Statut
Modérateur
Dernière intervention
18 juillet 2009

akami, la fonction tu l'as justement
exemple :
"SELECT * FROM MaTable WHERE MonChamp = '" & DoubleQuote(mavaleuradoublequoter) & "'"

Ca parait lourd mais c'est le seul moyen de ne pas se faire script injecter quand on fait une requete sql.

Le mieux pour eviter le script injection reste les procédures stockées avec SQL server, pas besoin de se soucier des quotes.

Tu peux essayer de faire un "analyseur" de requete sql pour parser et double quoter l'ensemble sans avoir à juste double quoter la valeur mais alors bon courrage parce que la moindre erreur dans ta fonction peut être une catastrophe. La meilleur solution reste celle-ci, avoir une fonction qui doublequote une valeur.
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.