我正在用 c++ 做一个软件,它允许使用 qt 库访问一些 rdbms。该软件仅适用于PC。软件需要知道 rdbms 的名称和版本,因为程序需要选择一些 sql 查询来执行。有没有办法在任何 rdbms 中检索此数据?
问问题
172 次
1 回答
0
有没有办法在任何 rdbms 中检索此数据?
这特定于每个 RDBMS - 例如,在 Oracle 中,您可以执行
select *
from v$version;
但在其他 RDBMS 中不存在此视图。
一些可能的方法:
无论如何,您都需要在某处定义连接参数。即使它们通常是特定于 RDBMS 的,所以您可以简单地添加另一个参数,例如
SQLFlavor=Oracle
orSQLFlavor=MySQL
然后使用SQLFlavor
代码中的值来确定要使用哪个 SQL 语句您可以使用一些启发式方法来找出 RDBMS。比如查询
v$version
视图——如果它不存在,你会得到一个错误,你知道它不是Oracle,你可以继续下一次尝试(比如SELECT VERSION()
看看它是否是MySQL)。否则,您可以使用结果找出具体的 Oracle 版本。
于 2013-03-27T09:08:21.487 回答