CPython (3.X python でも機能します) を使用した迅速で汚れた方法が必要な場合:
Python http://sourceforge.net/projects/pywin32/files/pywin32/をインストールした後、PYWIN32 をインストールします。
次のライブラリをインポートします: import odbc
SQL Server odbc ドライバーを取得するための次のメソッドを作成しました (Windows のバージョンによって名前が若干異なるため、これは関係なく取得されます)。
def getSQLServerDriver():
key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\ODBC\ODBCINST.INI")
sqlServerRegExp = re.compile('sql.*server', re.I | re.S)
try:
for i in range(0, 2048):
folder = winreg.EnumKey(key, i)
if sqlServerRegExp.match(folder):
return folder.strip()
except WindowsError:
pass
注: 上記の関数を使用する場合は、winreg と re の 2 つのライブラリもインポートする必要があります。
次に、ここで定義されている odbc API 1 情報を使用します: http://www.python.org/dev/peps/pep-0248/
接続インターフェイス文字列は次のようになります (ODBC ドライバー名を取得するために上記の方法を使用していて、それが信頼できる接続であると仮定します)。
dbString = "Driver={SQLDriver};Server=[SQL Server];Database=[Database Name];Trusted_Connection=yes;".replace('{SQLDriver}', '{' + getSQLServerDriver() + '}')
この方法には多くの欠点があります。ODBC API 1 しかサポートしていないため扱いにくく、私が遭遇した API または ODBC ドライバーのいずれかに小さなバグがいくつかありますが、Windows の CPython のすべてのバージョンで機能します。