vb基础   vb实例教程   api调用   控件使用   经验技巧   数据库操作   算法及技术   vb源码下载
您的位置:首页 >> vb教程 >> 数据库操作

如何动态新增、移除 ODBC DSN
出处:网络

      一般我们建立 Client 端 DSN 都是在使用者的机器上进入【控制面板】【ODBC 数据源(32位)】去建立,但是如果我们开发的 APP 使用者很多时,这就有点累人了,所以我们可以將这个动作放在程序中!

新增 DSN 的方法有二种:

1、使用 DBEngine 控件的 RegisterDatabase 方法

2、呼叫 SQLConfigDataSource API

不管使用以上任何一种方法新增 DSN,一共会写入二个地方,一个是注册表,一个是 ODBC.INI。

而刪除 DSN 的方法同上面的第二种方法,呼叫 SQLConfigDataSource API。

以下之模块以 Oracle73 Ver 2.5 为例,在 Form 的声明区中加入以下声明及模块:

Private Const ODBC_ADD_DSN = 1 ' Add data source

Private Const ODBC_CONFIG_DSN = 2 ' Configure (edit) data source

Private Const ODBC_REMOVE_DSN = 3 ' Remove data source

Private Const vbAPINull As Long = 0& ' NULL Pointer

Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _

(ByVal hwndParent As Long, ByVal fRequest As Long, _

ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long

Public Sub CreateDSN(sDSN As String)

Dim nRet As Long

Dim sDriver As String

Dim sAttributes As String

sDriver = "Oracle73 Ver 2.5"

sAttributes = "Server=Oracle8" & Chr$(0)

sAttributes = sAttributes & "DESCRIPTION=" & sDSN & Chr$(0)

'sAttributes = sAttributes & "DSN=" & sDSN & Chr$(0)

sAttributes = sAttributes & "DATABASE=DBFinance" & Chr$(0)

sAttributes = sAttributes & "Userid=Scott" & Chr$(0)

'sAttributes = sAttributes & "PWD=myPassword" & Chr$(0)

DBEngine.RegisterDatabase sDSN, sDriver, True, sAttributes '注一

'nRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, sDriver, sAttributes) '注二

End Sub

Public Sub DeleteDSN(sDSN As String)

Dim nRet As Long

Dim sDriver As String

Dim sAttributes As String

sDriver = "Oracle73 Ver 2.5"

sAttributes = sAttributes & "DSN=" & sDSN & Chr$(0)

nRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, sDriver, sAttributes)

End Sub

'假设要产生的 DSN 为 Test,实际使用示例如下:

Private Sub Command1_Click()

CreateDSN "Test"

End Sub

Private Sub Command2_Click()

DeleteDSN "Test"

End Sub

'而写到系統的数据如下:

1、ODBC.INI

[ODBC 32 bit Data Sources]

Test=Oracle73 Ver 2.5 (32 bit)

[Test]

Driver32=C:\ORAWIN95\ODBC250\sqo32_73.dll

2、注册表

机码:HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources

名称:Test 数据:Oracle73 Ver 2.5

机码:HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Test

名称:Description 数据:Test

名称:Driver 数据:C:\ORAWIN95\ODBC250\sqo32_73.dll

名称:Server 数据:Oracle8

名称:UserId 数据:Scott

※注一及注二可任选一种,只要將不使用的方法 Mark 起來即可!

※若您想使用其他之数据库,只要將以上模块稍作修改即可

[返回]

     

首页 | 设为首页 | 加入收藏 | 关于本站 | 友情链接 | 版权声明

     
 
Copyright© www.bianceng.cn Powered by 编程入门网 All Rights Reserved
吉ICP备06005558号