I have database in MS-ACCESS & MS-SQL SERVER,
I am connecting to the database through Data Sources (ODBC),
how to find which ODBC Driver through TD-Application, is there any Command to find vendor of the Database.
HOW TO FIND ODBC DRIVER THROUGH TD APPLICATION
HOW TO FIND ODBC DRIVER THROUGH TD APPLICATION
You do not have the required permissions to view the files attached to this post.
Re: HOW TO FIND ODBC DRIVER THROUGH TD APPLICATION
There are several ways to do this, for example you can issue this query:
!!CB!! 129
Set sSql = 'SELECT CmptLevel FROM Master.dbo.sysdatabases WHERE Name = \'master\' INTO :nCompatibilityLevel'
Call SqlPrepareAndExecute( g_hSql, sSql )
Call SqlFetchNext( g_hSql, nInd )
Suppress any errors, if it returns successfully you know which compatibility level of MSS you have.
You can also look up the registry for info of the ODBC definition. Here's sample code for how to grab the SQLServer DB name from the ODBC setup based on remotedbname in SQL.INI. You can adapt to get other ODBC info. Good luck.
!!CB!! 70
If SalFileOpen( fhFile, 'SQL.INI', OF_Read | OF_Share_Deny_None )
! Scan file
Loop
If NOT SalFileGetStr( fhFile, sLine, 2048 )
Break
If SalStrScan( SalStrTrimX( SalStrLowerX( sLine ) ), 'remotedbname=' || SalStrLowerX( SqlDatabase ) ) > -1 ! Found database name on this line
! Found the relevant line in the config file, now parse out the DSN
Set nPos = SalStrScan( sLine, 'DSN=' ) + 4
Set sDSN = SalStrRightX( sLine, SalStrLength( sLine ) - nPos )
! OK, now that we have the DSN name, let's check the registry to see what the database name is on the SQLServer side
Set oRegistry.m_RootKey = HKEY_LOCAL_MACHINE
Call oRegistry.ReadStringAt( '\\SOFTWARE\\ODBC\\ODBC.INI\\' || sDSN, 'Database', sDSNDatabaseName )
Set bOK = TRUE
Break
Call SalFileClose( fhFile )
!!CB!! 129
Set sSql = 'SELECT CmptLevel FROM Master.dbo.sysdatabases WHERE Name = \'master\' INTO :nCompatibilityLevel'
Call SqlPrepareAndExecute( g_hSql, sSql )
Call SqlFetchNext( g_hSql, nInd )
Suppress any errors, if it returns successfully you know which compatibility level of MSS you have.
You can also look up the registry for info of the ODBC definition. Here's sample code for how to grab the SQLServer DB name from the ODBC setup based on remotedbname in SQL.INI. You can adapt to get other ODBC info. Good luck.
!!CB!! 70
If SalFileOpen( fhFile, 'SQL.INI', OF_Read | OF_Share_Deny_None )
! Scan file
Loop
If NOT SalFileGetStr( fhFile, sLine, 2048 )
Break
If SalStrScan( SalStrTrimX( SalStrLowerX( sLine ) ), 'remotedbname=' || SalStrLowerX( SqlDatabase ) ) > -1 ! Found database name on this line
! Found the relevant line in the config file, now parse out the DSN
Set nPos = SalStrScan( sLine, 'DSN=' ) + 4
Set sDSN = SalStrRightX( sLine, SalStrLength( sLine ) - nPos )
! OK, now that we have the DSN name, let's check the registry to see what the database name is on the SQLServer side
Set oRegistry.m_RootKey = HKEY_LOCAL_MACHINE
Call oRegistry.ReadStringAt( '\\SOFTWARE\\ODBC\\ODBC.INI\\' || sDSN, 'Database', sDSNDatabaseName )
Set bOK = TRUE
Break
Call SalFileClose( fhFile )
Who is online
Users browsing this forum: [Ccbot] and 0 guests