我要在程序运行的时候动态创建ODBC,数据源是oracle,程序运行在不同的机器上用不同的ODBC,有具体的代码么?

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3312/3312939.xml?temp=.8339044这里有你需要的。^_^
      

  2.   

    Option ExplicitPrivate Const REG_SZ = 1    'Constant for a string variable type.
    Private Const HKEY_LOCAL_MACHINE = &H80000002Private Declare Function RegCreateKey Lib "advapi32.dll" Alias _
       "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, _
       phkResult As Long) As LongPrivate 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 LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" _
       (ByVal hKey As Long) As Long
    Private Sub Command1_Click()    Dim DataSourceName As String
        Dim DatabaseName As String
        Dim Description As String
        Dim DriverPath As String
        Dim DriverName As String
        Dim LastUser As String
        Dim Regional As String
        Dim Server As String
        
        Dim lResult As Long
        Dim hKeyHandle As Long
        
        DataSourceName = "ODBC Name"
        DatabaseName = "DatabaseName"
        Description = "ODBC的描述"
        DriverPath = "C:\WINNT\System32\sqlsrv32.dll" 'sqlsrv32.dll一般在系统文件夹下
        LastUser = "用户名称" 'SQL一般为 sa ,Access一般为Admin
        Server = "SQLServerName"
        DriverName = "SQL Server"
         
         lResult = RegCreateKey(HKEY_LOCAL_MACHINE, "SOFTWARE\ODBC\ODBC.INI\" & _
             DataSourceName, hKeyHandle)
        
        lResult = RegSetValueEx(hKeyHandle, "Database", 0&, REG_SZ, _
           ByVal DatabaseName, Len(DatabaseName))
        lResult = RegSetValueEx(hKeyHandle, "Description", 0&, REG_SZ, _
           ByVal Description, Len(Description))
        lResult = RegSetValueEx(hKeyHandle, "Driver", 0&, REG_SZ, _
           ByVal DriverPath, Len(DriverPath))
        lResult = RegSetValueEx(hKeyHandle, "LastUser", 0&, REG_SZ, _
           ByVal LastUser, Len(LastUser))
        lResult = RegSetValueEx(hKeyHandle, "Server", 0&, REG_SZ, _
           ByVal Server, Len(Server))
        
        lResult = RegCloseKey(hKeyHandle)
        
        lResult = RegCreateKey(HKEY_LOCAL_MACHINE, _
           "SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", hKeyHandle)
        lResult = RegSetValueEx(hKeyHandle, DataSourceName, 0&, REG_SZ, _
           ByVal DriverName, Len(DriverName))
        lResult = RegCloseKey(hKeyHandle)    MsgBox "创建成功"
    End Sub'这样使用
    Private Sub Command2_Click()
        Dim M_SQL_Connect As String
        M_SQL_Connect = "DSN=DataSourceName;uid=sa;pwd=YourPwd"
        Dim cn As New ADODB.Connection
        cn.open M_SQL_Connect
    End Sub
      

  3.   

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;171146
      

  4.   

    有没有数据源是oracle的ODBC啊,上边的好像是SqlServer的。