passage par variable par référence.
Bonjour,
Je suis face à un problème que je peux facilement contourné mais dont j'aimerais comprendre le pourquoi :
explication du problème : afin de protéger mes requetes à ma base de donnée, je prend soin de remplacer les ' par '' dans les variable de type string pour cela je crée cette fonction :
Code:
1 2 3
| Public Sub protectStringQuery(ByRef str As String)
str = Replace(str, "'", "''")
End Sub |
Donc selon moi puisque je met byref, lorsque j'appel cette fonction comme cela par exemple
Code:
1 2 3
| dim mdp
mdp = txtMdp.text
protectStringQuery(mdp) |
ma variable devrait mdp devrait voir tout ses ' remplacer par des ''. et bien ce n'est pas le cas alors je ne comprend pas ce qu'il se passe.
J'ai changer cette procedure par une fonction par
Code:
1 2 3
| Public function protectStringQuery(ByRef str As String)
protectStringQuery = Replace(str, "'", "''")
End Function |
mais bon cela oblige à écrire mdp = protectStringQuery(mdp) et puis j'aimerais bien comprendre pourquoi cela ne marche pas alors que le passage par référence fonctionne bien dans d'autre fonctions, procedures
Merci pour votre aide
Cordialement
Pierre