您的位置:首页 > 编程语言

关于ODBC API编程中如何判断DSN是否已存在

2010-12-06 21:12 337 查看
在ODBC编程中,要连接数据库必须先配置好数据源,Windows自带了一个数据源配置工具,可以在控制面板的管理工具中找到,也可以在运行中直接输入odbcad32.exe来打开。但对于程序开发者来说,我们怎么能让用户做这些繁琐的事呢!当然,微软也想到了这点,所以就有了SQLConfigDataSource这个API,它能自动配置数据源,具体参见MSDN。

那么问题来了,一个程序,一般不会只在用户电脑上运行一次,所以不可能每次程序运行都来配置数据源吧,怎样检测用户电脑上是否已经存在我们需要的数据源了呢?

其实,Windows中已经存在的数据源都保存在注册表中:

HKEY_LOCAL_MACHINE\software\odbc\odbc.ini 下保存了所有系统DSN
HKEY_CURRENT_USER\software\odbc\odbc.ini 下保存了所有用户DSN
因此,我们可以使用注册表操作API以 HKEY_LOCAL_MACHINE\software\odbc\odbc.ini\DSN名称 为参数打开,判断一下返回值不就行了吗?
代码如下:
HKEY key;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE, "software\\odbc\\odbc.ini\MYDB ", 0, KEY_ALL_ACCESS, &key) == ERROR_SUCCESS)
{
    DSN存在;
}
else
{
    DSN不存在;
}
RegCloseKey(key);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: