ADOオブジェクトでDelphi 7を使用すると、TADOConnectionオブジェクトからODBCデータベースドライバを特定できますか?だから、MS-AccessまたはSQL ServerやOracleなどTADOConnectionオブジェクトからODBCデータベースドライバを決定しますか?
プログラムはちょうどODBCデータ・ソースの名前を使用してデータベースに接続し、私はそのデータベースがあるかどうかを判断したいかどうかを検出MS-AccessデータベースまたはSQL Server。 MS-AccessとSQL Serverは異なるSQL関数名を使用して整数を文字列にキャストするため、これを実行したいと思います。
アプリケーションは、いくつかの構成オブジェクトのVERSIONを取得するSQL文字列を作成します。それはcast()
を使用してSQLサーバーのために動作しますが、私はまた、CStr()
を使用してMS-アクセスをサポートしたい:
SELECT NAME + '_' + CAST(VERSION as varchar) as OBJECT_NAME FROM ANALYSIS // SQL Server
SELECT NAME + '_' + CStr(VERSION) as OBJECT_NAME FROM ANALYSIS // MS-Access
私はTADOConnection.Providerを見てみましたが、それは両方のケースでMSDASQL.1
です。
if (myqry.Connection.Provider = 'MSDASQL.1') then
strSQL := strSQL + 'cast(' + myfieldname + ' as varchar)' // always goes here..
else
strSQL := strSQL + 'CStr(' + myfieldname + ')'; // ..never to here
私はすべてのTADOConnectionプロパティを調べましたが、それは不可能であると思われ始めています。任意のアイデアをどのようにこれを解決するには?