62

Windows 認証を使用して MS SQL Server を pyodbc ライブラリに接続するにはどうすればよいですか?

MS Access と SQL Server Management Studio 経由で接続できますが、Python の有効な接続 ODBC 文字列を取得できません。

これが私が試したことです(なしでも'Trusted_Connection=yes'):

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='[system_name]',
               database='[databasename]')

pyodbc.connect('Trusted_Connection=yes', uid='me',
               driver='{SQL Server}', server='localhost',
               database='[databasename]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               uid='me', pwd='[windows_pass]', database='[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               database='[server_name]\\[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}', server='localhost',
               database='[server_name]\[database_name]')

pyodbc.connect('Trusted_Connection=yes',
               driver='{SQL Server}',
               database='[server_name]\[database_name]')
4

3 に答える 3

89

セミコロン ( ;) を引数区切り文字として使用する 1 つの長い文字列として、接続文字列を指定できます。

作業例:

import pyodbc
cnxn = pyodbc.connect(r'Driver=SQL Server;Server=.\SQLEXPRESS;Database=myDB;Trusted_Connection=yes;')
cursor = cnxn.cursor()
cursor.execute("SELECT LastName FROM myContacts")
while 1:
    row = cursor.fetchone()
    if not row:
        break
    print(row.LastName)
cnxn.close()

多くのパラメーターを持つ接続文字列の場合、次のようにすると同じことを実現できますが、やや読みやすい方法になります。

conn_str = (
    r'Driver=SQL Server;'
    r'Server=.\SQLEXPRESS;'
    r'Database=myDB;'
    r'Trusted_Connection=yes;'
    )
cnxn = pyodbc.connect(conn_str)

(個々の文字列コンポーネント間にコンマがないことに注意してください。)

于 2013-05-13T06:14:55.343 に答える