要支持多个数据库,可是不同数据库有些语句略有不同,我的程序需要根据给定的数据源,来判定这个数据源连接的数据库是DB2 还是 SQL SERVER还是其他,该怎么做?真不好意思,大概翻了2遍ODBC的API没有看到。。眼花了。。谢谢

解决方案 »

  1.   

    每个数据库建个相同的表,在表中自己写是什么数据库。
    或者SELECT @@VERSION的查询,但不知道DB2中有没有这样的查询。
      

  2.   

    你要是使用ODBC的数据源名称,那就更难判断数据源对应的数据库类型了~
      

  3.   

    那岂不是每个数据库都要先连一下
    俺觉得没有什么好办法,用ADO的连接字符串判断比用ODBC好~
      

  4.   


    DB2返回的:
    SELECT @@VERSION
    SQL0104N  在 "SELECT @@VERSION" 后面找到异常标记
    "END-OF-STATEMENT"。预期标记可能包括:"<table_expr>"。  SQLSTATE=42601
      

  5.   


    ODBC能不能获取已经连接的数据源所用的引擎?
      

  6.   

    读注册表的方法来判断,每个ODBC数据源的类型HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources