在编写数据库应用程序时,常常需要用户自己在控制面板中配置ODBC数据源。然而对一般用户而言,配置ODBC数据源的工作是有一定困难的。因此,如果能在程序中动态加载ODBC数据源,就能大大方便应用程序最终用户的使用。本文介绍在VB中动态加载ODBC数据源的两种方法。
方法之一:修改注册表
一般情况下,用户在控制面板中配置好ODBC数据源后,Windows系统会将用户配置的信息写在注册表中。当应用程序需要用到数据源时,Windows会通知底层接口查阅注册表中该数据源的配置。例如,如果配置了系统数据源,Windows系统会根据配置修改注册表中的 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 主键。因此,我们只要在应用程序中使用API函数来完成Windows对注册表所做的工作,就可以达到动态加载数据源的目的。
对于不同类型的数据源,注册表修改的内容也会各有不同,但基本上都要修改两个地方:一个是在ODBC.INI子键下建立与数据源配置相关的项;另一个是在\ODBC.INI\ODBC Data Source子键下建立一个新项,以告诉驱动程序管理器ODBC数据源的类型信息。
下面以配置一个ODBC系统数据源为例,给出一段动态加载Access数据源的VB例程:
Public Function LoadDbSource(StrSourceName, StrSourceDB, StrDescription As String) As Boolean
Dim hKey As Long '要打开的注册表键句柄
Dim lReturn As Long '注册表API函数的执行返回值
Dim StrSubKey As String '要打开的子键
Dim Buffer As String * 255
Dim StrSysDir As String
Dim