begin process at 2012 02 16 19:06:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > DOUBLAGE DES SIMPLE QUOTE ' POUR LES CHAMPS SQL

DOUBLAGE DES SIMPLE QUOTE ' POUR LES CHAMPS SQL


 Description

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

Source

  • 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
    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



 Sources du même auteur

Source avec Zip Source .NET (Dotnet) UNE CLASSE POUR TRAVAILLER AVEC OLDDB (ACCESS) ET OLEDB (AS...
Source .NET (Dotnet) PERMET DE REFORMATER UN CHAMP TEXTE SUR UNE LARGEUR DE PAGE ...
Source .NET (Dotnet) CONVERTION DE HH:MM EN SECONDE ET INVERSE
Source .NET (Dotnet) CONVERTION DE DATE J/M/AAAA EN AAAAMMJJ ET HEURE H:M EN HHMM
Source .NET (Dotnet) ECRIRE UNE LIGNE SUR UN FICHIER TEXT.

 Sources de la même categorie

Source avec Zip Source avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

Commentaires et avis

Commentaire de Nix le 12/04/2004 12:13:46 administrateur CS

Salut,

En plus simple et plus rapide :

Public Function DoubleQuote(ByVal pValue As String) As String
    return pValue.Replace("'","''")
End Function

Il ne faut pas oublier que le framework est rempli de fonction comme celle-ci et surtout très optimisées.
C'est pas une critique, juste un façon plus simple de le faire ;)

Commentaire de michelsto le 12/04/2004 17:47:14

Exact Nix. Je n'ai pas pris cela comme une critique, et j'ai même adapté chez moi. Merci pour l'info.

Commentaire de jmlucienvb le 13/04/2004 11:45:57

Si on est en VBA la méthode de michelsto est intéressante car Replace n'existe pas en VBA (au moins jusqu'à 2000)

Commentaire de Nix le 13/04/2004 11:55:26 administrateur CS

oui sauf que sa source est une source VB.NET pas vb attention ;)

Commentaire de akami le 13/04/2004 12:53:09

      C'est vrai la fonction REPLACE est la meilleur.
je felicite encore michelsto pour son humilité à l'egard de Nix.

Mais Imaginez maintenant que vous n'ayez pas penser avant et que vous avez déjà ecrit environ 2000 requêtes dans votre application et que parcourir chaque requête pour placer la fonction REPLACE devient fastidieux. Alors il faut formater le texte de la requête avant de la passer à exécution.

Comment donc ecrire la fonction de formatage?

Commentaire de Nix le 13/04/2004 13:01:28 administrateur CS

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.

Commentaire de jmlucienvb le 13/04/2004 14:10:44

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


Commentaire de Nix le 13/04/2004 14:14:18 administrateur CS

La source est indiquée comme .NET c'est pour ça que j'ai apporté mon commentaire en fonction de VB.NET

Commentaire de jmlucienvb le 13/04/2004 14:40:58

Ok ok...
C'est vrai que je ne suis pas encore décidé à plonger dans le .Net...
Amitiés à Nix
jmluc

Commentaire de michelsto le 13/04/2004 19:40:46

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.

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,260 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales