如何在vb中动态创建ODBC

冰峰zoubf 2004-11-22 11:10:11
我要在程序运行的时候动态创建ODBC,数据源是oracle,程序运行在不同的机器上用不同的ODBC,有具体的代码么?
...全文
145 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰峰zoubf 2004-11-22
  • 打赏
  • 举报
回复
有没有数据源是oracle的ODBC啊,上边的好像是SqlServer的。
viena 2004-11-22
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx?scid=kb;EN-US;171146
lxcc 2004-11-22
  • 打赏
  • 举报
回复
Option Explicit

Private Const REG_SZ = 1 'Constant for a string variable type.
Private Const HKEY_LOCAL_MACHINE = &H80000002

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 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
huangjianyou 2004-11-22
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3312/3312939.xml?temp=.8339044

这里有你需要的。

^_^

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧