C++中 已知系统数据源(ODBC)的名称,怎么根据该数据源名称判断该数据源是属于哪个数据库?

2024-12-25 14:25:37
推荐回答(1个)
回答1:

从数据库连接字符串中,把数据库源DSN提取出来。
然后搜索注册表,
用户DSN到[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]下找
系统DSN到[HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources]下找
找到以后,根据找到的字符串来判断。
如果不想根据字符串来判断,
就根据DSN名字,到注册表上一层路径里面找到数据库源的详细信息。
里面有个Driver项,写着数据库驱动源的程序名,根据这个来判断。

操作注册表可能涉及的API:
RegOpenKeyEx
RegEnumValue
RegCloseKey