SQL Serverクライアントドライバーがインストールされているかどうかを確認するにはどうすればよいですか?また、バージョンを確認することもできますか?
->ファイル名を指定して実行->コマンド->タイプregedit.exeに移動すると、ODBCフォルダの下にレジストリが表示されます。
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\
ODBC Drivers\SQL Server
私はまた、この問題について 完全な回答 を見つけました(MySQLに基づいていますが、基本的には同じです)。
後で編集:コメントに従って、SQL Serverの2005バージョンをインストールしました。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Microsoft SQL Native Client\CurrentVersion
とにかく、2つのバージョンの違いを確認するために2008バージョンを確認する方法も示します。
SQL Server 2008/R2の場合:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Microsoft SQL Server\SQLNCLI10\CurrentVersion
SQL Server 2012の場合:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Microsoft SQL Server\SQLNCLI11\CurrentVersion
これはodbcad32.exe
を実行すると見つかります。
Microsoftサポートサイト から:
SQL Server Native Clientのバージョンを確認するには、次のいずれかの方法を使用します。
方法1:Native Clientのバージョンを確認するシステムでODBC Administrator(
odbcad32.exe
)を起動し、[ドライバー]タブの[バージョン]列を確認します。
64ビットシステムでは、odbcad64.exe
も確認してください。
req query
から入手できます
reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft /f Native*Client /k
結果
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 11.0
End of search: 1 match(es) found.
次に、たとえばpythonで解析することで正確な数を取得できます
import os
import re
os.system("reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft /f Native*Client /k > C:\\reg.out")
out=open("C:\\reg.out").read()
ver=re.search("Native Client (\d+)").group(1)
print(ver)
そして、あなたはver=11
を得ますより速い方法もあります
code = os.system("reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft /f Native*Client*11 /k > null")
code == 0 # means there is client of version 11
code == 1 # means there is no such client