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 :

Connection Mysql


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut Connection Mysql
    Bonjour à tous,
    essai connection à ma base Mysql non ok.
    code erreur = 1043.
    Message décrivant l'erreur = Mauvais 'Handshake'.

    documentation utilisé : http://rp.developpez.com/vb/tutoriels/mysql/
    Bien sur les 3 modules Mysql sont dans le projet, un si que la libmysql.dll

    Voici mon code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    Option Explicit
     
    Dim pMySQL As Long
    Dim zHostBD As String
    Dim zUserBD As String
    Dim zPassBD As String
    Dim zBaseBD As String
     
    Private Sub Form_Load()
    zHostBD = "127.0.0.1" ' ou localhost
    zUserBD = "mon user de connection"
    zPassBD = "mon passe de connection"
    zBaseBD = "livredor" ' nom de la base de donnée
     
    ' Initialiser la connexion à MySQL
    pMySQL = mysql_init(0)
     
    If mysql_real_connect(pMySQL, zHostBD, zUserBD, zPassBD, zBaseBD, 0, "", 0) = 0 Then
          ' la connexion a échoué
          ' Obtenir le code d'erreur
          ' mysql_errno() renvoie le n° de l'erreur survenue lors du dernier appel à l'API, pour la connexion donnée. Une valeur nulle indique qu'il n'y a pas eu d'erreur.
          Dim myErrorCode As Long
          myErrorCode = mysql_errno(pMySQL)
          '
          ' Obtenir un message décrivant l'erreur
          ' mysql_error() renvoie un message décrivant l'erreur survenue lors du dernier appel à l'API, pour la connexion donnée. Un message vide indique qu'il n'y a pas eu d'erreur.
          Dim pMyErrorMsg As Long, myErrorMsg As String
          pMyErrorMsg = mysql_error(pMySQL)
          myErrorMsg = CopieChaine(pMyErrorMsg)
          MsgBox "La connexion a échoué." & Chr$(10) & "Code erreur = " & myErrorCode & Chr$(10) & "Message décrivant l'erreur = " & myErrorMsg
    Else
        ' la connexion a réussi
        MsgBox "La connexion a réussi."
    End If
     
    ' Fermer la connexion
    mysql_close (pMySQL)
     
    End Sub
    Si quelqu'un à la solution, Merci d'avance.
    Je ne peux pas écrire plus de code tant que je ne peux-pas me connecté à ma base.

  2. #2
    Membre expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Points : 3 685
    Points
    3 685
    Par défaut
    Combien vaut pMySQL après
    ?
    Pour VB6 : N'oubliez pas d'aller voir la FAQ et les Tutoriels
    Vous trouvez une reponse particulierement utile ? Votez pour !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut pb connection Mysql
    Bonjour,

    essai avec accés sur plusieur base de donnée.
    pMySQL = 54410232

    Merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    J'ai fais l'essai avec l'exécutable du projet, pMySQL valeur différente à chaque essai mais jamais vaut 0.
    Code erreur + Message décrivant l'erreur toujours identique.
    je voie pas d'ou viens l'erreur.

    si quelqu'un à une idée, je suis preneur.
    MERCI

  5. #5
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 174
    Points
    17 174
    Par défaut
    Peut être pas de rapport mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zBaseBD = "livredor" ' nom de la base de donnée
    ne serait-ce pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zBaseBD = "livredor.MDB" ' nom de la base de donnée
    s'il s’agissait d'une base acces.
    Cela m'étonne que tu ne doives les passer.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    nom de l'une des bases Mysql = livredor
    Les fichiers associé sont :
    livredor.MYD
    livredor.MYI
    livredor.frm
    db.opt

    J'accéde trés bien à mes bases de données en programmation PHP.
    D'apres la documentation sité plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zBaseBD = "livredor" ' nom de la base de donnée
    c'est bien un nom de base sans extension.

    Merci d'avoir essayer

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    J'essaye de faire la même chose sans le drivers ODBC !
    Et j'ai le même problème mais avec le code erreur 2003 !

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Bonjour thedjinhn

    Qu'appelle tu le drivers ODBC !
    je suis un peu novice.

    Merci

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Bonjour a tous,

    J'utilisé la dll que javais trouvé dans mon répertoire EasyPhp/php/libmysql.dll de 196 ko.
    J'ai téléchargé libmysql.dll de 228 ko ci-dessous que j'ai mise dans Windows/system32
    http://www.fichier-dll.fr/libmysql.dll,1972
    est comme par magie, la connection à mes base de données fonctionne maintenant.

    Merci à tous, pb résolu, je fais pouvoir avancé dans mon projet.

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour patou41000,

    J'ai bien pris la DLL du tu indique, mais j'ai toujours l'erreur.
    Est ce que tu pourrais copier ton code pour vérifier ce que j'ai ! car j'ai toujours l'erreur

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 99
    Points : 76
    Points
    76
    Par défaut
    Bonjour thedjinhn,

    Depuis j'ai pas mal avancé dans mon projet. J'ai réduis au minimum mon code.
    Dans ton projet, mettre la dll cité si dessus.
    Dans ton projet, mettre les 3 modules de la documentation cité plus haut.
    Dans le Form_Load() mettre tes 3 informations personnel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    Option Explicit
     
    ' Documentation : http://rp.developpez.com/vb/tutoriels/mysql/
    Dim pMySQL As Long
    Dim zHostBD As String
    Dim zUserBD As String
    Dim zPassBD As String
    Dim zBaseBD As String
    '
    '
    ' Manipulation des pointeurs en Visual Basic
    ' Les fonctions de l'API Windows sont assez faciles à utiliser avec Visual Basic, car elles ne renvoient pas de pointeurs.
    ' Mais la grande majorité des fonctions de l'API MySQL renvoient un pointeur, sur une structure ou sur une chaîne de caractères.
    ' VB ne permet pas de déclarer un pointeur sur une variable.
    ' Donc si nous avons besoin des champs de la structure renvoyée, ou de la chaîne de caractères, nous devons recopier la zone mémoire qui est pointée, dans une variable.
    ' Afin d'y parvenir, nous pouvons utiliser ces deux fonctions de l'API windows :
    ' lstrcpy (lpString1, lpString2) recopie la chaîne qui est à l'adresse lpString2 dans la chaîne lpString1.
    ' CopyMemory() recopie une zone mémoire dans une autre. Les paramètres sont :
    ' l 'adresse de la zone mémoire de destination
    ' l 'adresse de la zone mémoire à recopier
    ' le nombre d'octets à recopier
    Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As Any, ByVal lpString2 As Any) As Long
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    '
    Dim zBidon As Byte
     
    Private Sub Form_Load()
     
    Form1.Caption = "Connexion Base de Données - MYSQL"
    '
    ' Avant tout chose il est nécessaire d'initialiser l'accès à la DLL. ( libmysql.dll )
    ' Au retour, pMySQL contient l'adresse de la structure permettant l'interfaçage avec mySQL, ou 0 en cas d'erreur. Il est tout à fait possible d'avoir plusieurs connexions dans le même programme.
    pMySQL = mysql_init(0)
    '
    zHostBD = LOCAL_HOST ' "localhost" ou "127.0.0.1"
    zUserBD = "identifiant"
    zPassBD = "mot de passe"
    zBaseBD = "Nom de la base"
    '
    ConnexionBaseDonnées
    DéconnectionBaseDonnées
     
    End Sub
     
    Private Sub ConnexionBaseDonnées()
    ' SE CONNECTER A LA BASE DE DONNEES
    ' mysql_real_connect() ouvre la connexion à la base de données. Les paramètres sont :
          ' le handle de connexion
          ' l 'adresse du serveur où mySQL est installé
          ' le nom de user
          ' le mot de passe
          ' le nom de la base de données
          ' le n° de port (0 indique que l'on utilise le port par défaut)
          ' le nom du pipe ou le socket qui sera utilisé (habituellement 0)
          ' des statuts permettant de configurer la connexion (habituellement 0)
          ' Une valeur de retour nulle indique qu'une erreur s'est produite. Une valeur autre indique que la connexion est ouverte.
    If mysql_real_connect(pMySQL, zHostBD, zUserBD, zPassBD, zBaseBD, 0, "", 0) = 0 Then
          ' la connexion a échoué
          '
          ' Obtenir le code d'erreur
          ' mysql_errno() renvoie le n° de l'erreur survenue lors du dernier appel à l'API, pour la connexion donnée. Une valeur nulle indique qu'il n'y a pas eu d'erreur.
          Dim myErrorCode As Long
          myErrorCode = mysql_errno(pMySQL)
          '
          ' Obtenir un message décrivant l'erreur
          ' mysql_error() renvoie un message décrivant l'erreur survenue lors du dernier appel à l'API, pour la connexion donnée. Un message vide indique qu'il n'y a pas eu d'erreur.
          Dim pMyErrorMsg As Long, myErrorMsg As String
          pMyErrorMsg = mysql_error(pMySQL)
          myErrorMsg = CopieChaine(pMyErrorMsg)
          MsgBox "La connexion a échoué." & Chr$(10) & "Code erreur = " & myErrorCode & Chr$(10) & "Message décrivant l'erreur = " & myErrorMsg & Chr$(10) & "pMySQL = " & pMySQL
          End
        ' ...
    Else
        MsgBox "La connexion a réussi."
    End If
     
    End Sub
     
    Private Sub DéconnectionBaseDonnées()
    ' FERMER LA CONNEXION A LA BASE DE DONNEES
    ' mysql_close() ferme la connexion à la base de données et libère les ressources allouées lors de la création de la connexion.
    mysql_close (pMySQL)
     
    End Sub
     
     
    Private Function CopieChaine(ByVal adresse As Long) As String
    ' Voyons comment récupérer une chaîne de caractères qui se trouve à une adresse donnée, à l'aide de lstrcpy() :
    Dim ret As String
     
    If adresse > 0 Then
        ret = Space(256)
        lstrcpy ret, adresse
        ret = Trim(ret)
        If ret <> "" Then CopieChaine = left(ret, Len(ret) - 1)
    End If
     
    End Function
    Tu doit pouvoir te connecté à la base avec ce code, pour moi ça fonctionne.

  12. #12
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Bon pour moi ca fonctionne mais pas avec la dll que tu donne !!!

    Bon maintenant je désire pouvoir faire la même chose en VB .NET

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

Discussions similaires

  1. [Debugage] Connection Mysql
    Par e1lauren dans le forum MFC
    Réponses: 6
    Dernier message: 25/04/2005, 16h18
  2. [JAR]Connection Mysql et jar executable
    Par Jones dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/04/2005, 14h27
  3. Nombre max de connections MySQL ?
    Par RorolePro dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/11/2004, 14h16
  4. problème de connection mysql par tcp/ip
    Par leroyphil dans le forum Administration
    Réponses: 5
    Dernier message: 04/09/2003, 18h27
  5. [Kylix] Pb connection à Mysql
    Par Anonymous dans le forum EDI
    Réponses: 3
    Dernier message: 25/04/2002, 15h26

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