begin process at 2008 09 06 20:12:08
1 237 931 membres
313 nouveaux aujourd'hui
14 314 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CRÉER UN DSN(OPEN DATABASE CONNECTIVITY) POUR MYSQL PAR LE CODE


Information sur la source

Catégorie :Base de Donnees Niveau : Initié Date de création : 26/08/2002 Date de mise à jour : 26/08/2002 22:56:13 Vu / téléchargé: 4 702 / 487

Note :
9,33 / 10 - par 3 personnes
9,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Cet exemple est dérivé de l'article paru ici :
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q184608&,
Qui explique comment créer un DSN pour sql Server.

En utilisant les drivers MyODBC : http://www.mysql.com/downloads/api-myodbc-2.50.html,
on peut faire la même chose avec un serveur sous mySQL...

amusez vous bien !! A+

Source

  • Option Explicit
  • Private Const REG_SZ = 1 'Constant for a string variable type.
  • 'elle est bonne !!!
  • Private Const HKEY_LOCAL_MACHINE = &H80000002
  • Private Declare Function GetSystemDirectoryA _
  • Lib "kernel32" _
  • (ByVal lpBuffer As String, _
  • ByVal nSize As Long) As Long
  • '----
  • Private Declare Function RegCreateKey _
  • Lib "advapi32.dll" Alias "RegCreateKeyA" _
  • (ByVal hKey As Long, _
  • ByVal lpSubKey As String, _
  • phkResult As Long) As Long
  • '----
  • Private Declare Function RegSetValueEx _
  • Lib "advapi32.dll" Alias "RegSetValueExA" _
  • (ByVal hKey As Long, _
  • ByVal lpValueName As String, _
  • ByVal Reserved As Long, _
  • ByVal dwType As Long, _
  • lpData As Any, _
  • ByVal cbData As Long) As Long
  • '----
  • Private Declare Function RegCloseKey _
  • Lib "advapi32.dll" _
  • (ByVal hKey As Long) As Long
  • '----
  • Private Sub cmdCreate_Click()
  • Dim sDataSourceName As String, sDatabaseName As String
  • Dim sDescription As String, sDriverPath As String, sDriverName As String
  • Dim sLastUser As String, sRegional As String, sServer As String
  • Dim lResult As Long
  • Dim hKeyHandle As Long
  • 'Permet de spécifier les paramêtres du DSN.
  • sDataSourceName = txtData(0).Text
  • sDatabaseName = txtData(1).Text
  • sDescription = txtData(2).Text
  • sDriverPath = GetSystemDirectory
  • sLastUser = txtData(3).Text
  • sServer = txtData(4).Text
  • sDriverName = "MySQL"
  • 'Create the new DSN key.
  • lResult = RegCreateKey(HKEY_LOCAL_MACHINE, _
  • "SOFTWARE\ODBC\ODBC.INI\" & _
  • sDataSourceName, hKeyHandle)
  • 'défini les valeurs de la nouvelle clé DSN.
  • lResult = RegSetValueEx(hKeyHandle, _
  • "Database", 0&, REG_SZ, _
  • ByVal sDatabaseName, Len(sDatabaseName))
  • lResult = RegSetValueEx(hKeyHandle, _
  • "Description", 0&, REG_SZ, _
  • ByVal sDescription, Len(sDescription))
  • lResult = RegSetValueEx(hKeyHandle, _
  • "Driver", 0&, REG_SZ, _
  • ByVal sDriverPath, Len(sDriverPath))
  • lResult = RegSetValueEx(hKeyHandle, _
  • "LastUser", 0&, REG_SZ, _
  • ByVal sLastUser, Len(sLastUser))
  • lResult = RegSetValueEx(hKeyHandle, _
  • "sServer", 0&, REG_SZ, _
  • ByVal sServer, Len(sServer))
  • 'Ferme la nouvelle clé du DSN.
  • lResult = RegCloseKey(hKeyHandle)
  • 'ouvre la clé de donné source ODBC
  • 'Pour le mettre dans la liste du DSN manager.
  • 'spécifie la nouvelle valeur.
  • 'ferme la clé.
  • lResult = RegCreateKey(HKEY_LOCAL_MACHINE, _
  • "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", _
  • hKeyHandle)
  • lResult = RegSetValueEx(hKeyHandle, _
  • sDataSourceName, 0&, REG_SZ, _
  • ByVal sDriverName, Len(sDriverName))
  • lResult = RegCloseKey(hKeyHandle)
  • End Sub
  • Private Function GetSystemDirectory() As String
  • Dim s As String, i As Integer
  • i = GetSystemDirectoryA("", 0)
  • s = Space(i)
  • GetSystemDirectoryA s, i
  • s = Left$(s, i - 1)
  • ' si pas de backslash...
  • If Len(s) > 0 Then
  • If Right$(s, 1) <> "\" Then
  • GetSystemDirectory = s + "\"
  • Else
  • GetSystemDirectory = s
  • End If
  • Else
  • GetSystemDirectory = "\"
  • End If
  • End Function
Option Explicit

    Private Const REG_SZ = 1    'Constant for a string variable type.
                                'elle est bonne !!!
                                
    Private Const HKEY_LOCAL_MACHINE = &H80000002
    
    
    Private Declare Function GetSystemDirectoryA _
    Lib "kernel32" _
        (ByVal lpBuffer As String, _
        ByVal nSize As Long) As Long
    '----
    Private Declare Function RegCreateKey _
    Lib "advapi32.dll" Alias "RegCreateKeyA" _
        (ByVal hKey As Long, _
        ByVal lpSubKey As String, _
        phkResult As Long) As Long
    '----
    Private Declare Function RegSetValueEx _
    Lib "advapi32.dll" Alias "RegSetValueExA" _
        (ByVal hKey As Long, _
        ByVal lpValueName As String, _
       ByVal Reserved As Long, _
       ByVal dwType As Long, _
       lpData As Any, _
       ByVal cbData As Long) As Long
    '----
    Private Declare Function RegCloseKey _
    Lib "advapi32.dll" _
       (ByVal hKey As Long) As Long
    '----
Private Sub cmdCreate_Click()

   Dim sDataSourceName As String, sDatabaseName As String
   Dim sDescription As String, sDriverPath As String, sDriverName As String
   Dim sLastUser As String, sRegional As String, sServer As String

   Dim lResult As Long
   Dim hKeyHandle As Long

   'Permet de spécifier les paramêtres du DSN.
   
   sDataSourceName = txtData(0).Text
   sDatabaseName = txtData(1).Text
   sDescription = txtData(2).Text
   sDriverPath = GetSystemDirectory
   sLastUser = txtData(3).Text
   sServer = txtData(4).Text
   sDriverName = "MySQL"

   'Create the new DSN key.

   lResult = RegCreateKey(HKEY_LOCAL_MACHINE, _
                "SOFTWARE\ODBC\ODBC.INI\" & _
                sDataSourceName, hKeyHandle)

   'défini les valeurs de la nouvelle clé DSN.

   lResult = RegSetValueEx(hKeyHandle, _
            "Database", 0&, REG_SZ, _
      ByVal sDatabaseName, Len(sDatabaseName))
   
   lResult = RegSetValueEx(hKeyHandle, _
            "Description", 0&, REG_SZ, _
      ByVal sDescription, Len(sDescription))
   
   lResult = RegSetValueEx(hKeyHandle, _
                "Driver", 0&, REG_SZ, _
      ByVal sDriverPath, Len(sDriverPath))
   
   lResult = RegSetValueEx(hKeyHandle, _
            "LastUser", 0&, REG_SZ, _
      ByVal sLastUser, Len(sLastUser))
   
   lResult = RegSetValueEx(hKeyHandle, _
            "sServer", 0&, REG_SZ, _
            ByVal sServer, Len(sServer))

   'Ferme la nouvelle clé du DSN.

   lResult = RegCloseKey(hKeyHandle)

   'ouvre la clé de donné source ODBC
   'Pour le mettre dans la liste du DSN manager.
   'spécifie la nouvelle valeur.
   'ferme la clé.

   lResult = RegCreateKey(HKEY_LOCAL_MACHINE, _
      "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", _
      hKeyHandle)
   
   lResult = RegSetValueEx(hKeyHandle, _
   sDataSourceName, 0&, REG_SZ, _
      ByVal sDriverName, Len(sDriverName))
   
   lResult = RegCloseKey(hKeyHandle)
End Sub

Private Function GetSystemDirectory() As String
    Dim s As String, i As Integer
    i = GetSystemDirectoryA("", 0)
    s = Space(i)
    GetSystemDirectoryA s, i
    s = Left$(s, i - 1)
    
    ' si pas de backslash...
    If Len(s) > 0 Then
        If Right$(s, 1) <> "\" Then
        GetSystemDirectory = s + "\"
        Else
            GetSystemDirectory = s
        End If
    Else
        GetSystemDirectory = "\"
    End If
End Function

 

Conclusion

Je suis près à développer le sujet si ça interesse qq :)
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de Mumuri le 12/10/2002 11:15:15

    merci

  • signaler à un administrateur
    Commentaire de rclsilver02 le 13/05/2003 17:14:43

    est ce que grace a ce programme, on peut se connecte a une base de donne Free (sql.free.fr) et ajouter des champs dans les tables, en supprimer, en lire, enfin tout ça quoi ? Si oui comment stp

  • signaler à un administrateur
    Commentaire de NoTsu le 24/02/2004 13:17:36

    Sur FREE toutes les bases ne sont accessible que depuis ton compte free, c'est une restriction de free sur ses bases , donc aucun programme tel qu'il soit ne pourra passer outre cette protection des bases Free.
    En gros, les bases FREE tu peux les utilisaer que avec des scripts hébergé sur le serveur FREE.

  • signaler à un administrateur
    Commentaire de Matyouz le 29/04/2005 13:18:43

    Idem pour les base Mysql de Lycos (Webcenter) ... Pour alimenter ta base MySql sur ton serveur hébergeur, tu peux faire un script (feuille php par exemple) que tu positionnes sur l'hébergeur et qui se connecte à ton PC pour récupérer les données à initialiser ... il faudra faire quelques configuration au niveau de ton serveur Apache ... c'est le seul moyen !!!!

  • signaler à un administrateur
    Commentaire de surfzoid le 03/05/2005 14:35:36

    si belote tu ne veut pas avoir dans ton gestionnaire ODBC
    remplaces
    sDriverName = "MySQL"
    par
    sDriverName = "{MySQL ODBC 3.51 Driver}"
    Bien sur si c est bien la version 3.51

  • signaler à un administrateur
    Commentaire de 12_darte_12 le 17/10/2006 12:09:39

    Merci.

    Peut-on supprimer ce même lien une fois qu'il a été créé?

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Boutique

Boutique de goodies CodeS-SourceS