Doublage des simple quote ' pour les champs sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 845 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

michelsto
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.
jmlucienvb
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
Nix
Messages postés
838
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
jmlucienvb
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
Nix
Messages postés
838
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.

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.