IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

passage par variable par référence.


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 95
    Points : 52
    Points
    52
    Par défaut 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 535
    Points
    5 535
    Par défaut
    Bonjour,

    Ce que tu appelle une "fonction" dans ta première partie n'en est point une (ce n'est qu'une routine)

    Une fonction retourne une valeur (pas une routine)
    une routine peut transformet ses paramètres
    Une routine s'appelle sans parenthèses

    Tu vas comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Command1_Click()
     Dim toto As String, titi As String
     toto = "a"
     masub toto 'pas de parenthèses
     MsgBox toto ' ===> b
     
     titi = "a"
     masub (titi) 'parenthèses
     MsgBox titi  '===>> a
    End Sub
     
    Private Sub masub(ByRef aaa As String)
      aaa = "b"
    End Sub

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Salut,

    Faut écrire sans les paranthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim mdp
    mdp = txtMdp.text
    protectStringQuery mdp
    @+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Passage de variables par <a href ...
    Par Jean_Benoit dans le forum Langage
    Réponses: 2
    Dernier message: 13/05/2006, 14h59
  2. problème de passage de variables par POST
    Par jeanfrancois dans le forum Langage
    Réponses: 7
    Dernier message: 03/05/2006, 13h36
  3. Probleme avec passage de variables par formulaires
    Par cortex007 dans le forum Langage
    Réponses: 5
    Dernier message: 17/12/2005, 14h08
  4. passage de variable par un formulaire (checkbox)
    Par artotal dans le forum Langage
    Réponses: 3
    Dernier message: 16/10/2005, 19h16
  5. Passage de variable par methode post ?
    Par oazar dans le forum Flash
    Réponses: 33
    Dernier message: 16/10/2003, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo