• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 750
  • Last Modified:

Detecting underlying database type under ODBC

Because of a difference in the way dates are presented for comparison in WHERE expressions (see http://www1.experts-exchange.com/Computers/Databases/SQL/Q_10320535.html) , I need to know what type of database is being used for my MFC ODBC app.  I tried using CDatabase::GetConnect() to get the connect string and found FIL=MS Access; when ODBC data source used Access, but no such string was returned under MS SQL Server 7.0.

How can I detect the underlying database type?
0
sniles
Asked:
sniles
1 Solution
 
twolCommented:
Simply by adding a few functions to make generic odbc calls, you should have no problems between these two environments ( I've already done this).

Use the info at this page to see how to make generice odbc SQL statements.

http://support.microsoft.com/support/kb/articles/Q142/9/30.asp
0
 
kpkpCommented:
If you can get you app to read registry entries at run time, look for a key in
[My Computer\HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\]

There should be keys here for each DSN, look for the key with the same name as the DSN you app is using, the data value for the key is the ODBC driver name.
0
 
snilesAuthor Commented:
Thanks.

While this question was open, I found another way to find the info (although I prefer your solution, which makes this info unnecessary):

#include <SQL.H>

char dbms_info[256];
SQLSMALLINT dbms_info_len;

int rc =  SQLGetInfo(                        m_database.m_hdbc,
      SQL_DBMS_NAME,
      (SQLPOINTER) dbms_info,            (SQLSMALLINT) sizeof(dbms_info),
      (SQLSMALLINT *) &dbms_info_len);

When this call returns, dbms_info contains "ACCESS" or "Microsoft SQL Server" (haven't tested other values).
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now