工控编程吧

标题: 上位机程序动态创建ODBC数据源 [打印本页]

作者: qq263946146    时间: 2017-5-31 18:36
标题: 上位机程序动态创建ODBC数据源
ODBC(Open Database Conectivity开放式数据库互联),其工作依赖于数据库制造商提供的驱动程序.
使用ODBC API的时候,首先要配置数据源.
Windows的ODBC管理程序,把数据库访问的请求传递给正确的驱动程序,驱动程序再使用SQL语句指示DBMS(数据库管理系统)完成数据库访问工作。
一般,数据库到ODBC驱动程序管理器的注册(创建ODBC数据源),有下面两种方法:
一是编程时手工配置ODBC数据源(在系统控制面板找到ODBC程序设置),发布时使用InstallShield等安装制作软件自动配置ODBC数据源;
二是考虑用程序替用户完成这些配置工作,实现的方法有几种,一种办法是用程序修改Windows注册表,用Windows API函数增改HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中的键值,这种方法比较烦琐,另一种是在程序中使用ODBC API的方法,我们可以在任何时候都可以用Visual C++编写的程序调用这些API函数来设置ODBC数据源。

创建ODBC数据源可以调用函数SQLConfigDataSource()实现, 函数定义在动态链接库ODBCCP32.DLL中,该函数可以动态地增加、修改和删除数据源。

SQLConfigDataSource()原型:
BOOL SQLConfigDataSource(HWND hwndParent,
UINT fRequest,
LPCSTR IpszDriver,
LPCSTR IpszAttributes);
其中四个参数的用法如下:
●参数hwndPwent是父级窗口句柄。如果句柄为NULL,将不会显示一些有关的对话框。(参数 IpszAttributes提供的信息不够完善,在创建过程中就会出现对话框要求用户提供相应信息。)
●参数fRequest可以设置为下面的数值之一:
ODBC_ADD_DSN: 增加_个新数据源
ODBC_CONHG_DSN: 配置(修改)一个已经存在的数据源
ODBC_REMOVE_DSN: 删除一个已经存在的数据源
ODBC_ADD_SYS_DSN: 增加一个新的系统数据源
ODBC_CONFIG_SYS_DSN: 更改一个已经存在的系统数据源
ODBC_REMOVE_SYS_DSN: 删除一个已经存在的系统数据源
●参数lpszDriver是数据库引擎名称,可以参见ODBC管理器中对ODBC驱动程序的描述。比如要加载的是Excel数据库,那么数据库引擎名称就为Microsoft Excel Driver(*.xls)
mdb数据库引擎名称为Microsoft Access Driver(*.mdb)
(, 下载次数: 6)