一般来说,我们在使用ODBC时,都是手动配置数据源,也就是使用电脑自带的ODBC数据源窗口进行手动配置。当我们在进行项目开发的时候,编好的代码给用户时,用户需要重新配置数据源,十分麻烦,为了方便,我们可以通过代码来解决这一问题,直接通过编程自动配置。

一、手动配置数据源

打开odbc数据源,注意32位和64位,根据自己的项目而定,我选择的是64位。

ODBC添加不了POSTGRESQL 添加odbc数据源_自动配置数据源


点击添加,根据自己的数据格式选择对应的驱动程序,我这里选择Microsoft Access Driver (*.mdb, *.accdb);点击完成,弹出对话框,输入源文件名(自己起一个名字,程序就是通过这个名字连接数据库,我这里使用MyAccess),选择数据库(选择数据的路径,我这里选择D:\02.mdb),点击高级设置用户名、密码等,我这里不设置了。

ODBC添加不了POSTGRESQL 添加odbc数据源_数据源_02


数据源添加完成,我们在用户数据源中能看到自己添加的数据源了。

ODBC添加不了POSTGRESQL 添加odbc数据源_ODBC添加不了POSTGRESQL_03

二、自动配置数据源–SQLConfigDataSource()函数

自动配置数据源也比较简单,使用SQLConfigDataSource()函数就可以搞定,配置成功的关键在于这个函数的参数一定要写对,不然怎么配置都无法成功。

1. SQLConfigDataSource 函数说明
BOOL SQLConfigDataSource ( HWND hwndParent,WORD fRequest,
LPCSTR lpszDriver,LPCSTR lpszAttributes );
参数1:父窗口句柄,一般不需要创建数据源对话框,可设为NULL。
参数2:指定操作类型。增加、删除、修改数据源等(分用户数据源和系统数据源)。
参数3:指定ODBC数据源的驱动。
参数4:指定ODBC数据源的属性,数据源名、路径、数据类型、数据描述等。

配置Access数据源的代码参数如下:
BOOL isSucess = SQLConfigDataSource(NULL, ODBC_ADD_DSN, “Microsoft Access Driver (*.mdb, *.accdb)\0”, “DSN=MyAccess\0 DBQ=d:\02.mdb\0”);
返回1表示成功,返回0表示失败。

特别注意:

1.使用此函数需要包含 #include “odbcinst.h” 头文件

2.第三个参数为ODBC驱动程序,这个字符串一定不能有任何错误,包括空格都不能缺少,它一定要和手动配置时候出现的驱动程序一样,不然就连接不上。

ODBC添加不了POSTGRESQL 添加odbc数据源_ODBC添加不了POSTGRESQL_04