11

アプリをMSSQLに接続するためのサーバー名、データベース名、ユーザー名、およびパスワードを記載した.ini(構成ファイル)があります。

self.db = pyodbc.connect(
    'driver={SQL Server};server=homeserver;database=testdb;uid=home;pwd=1234')`

上記の対応するデータは、connectステートメントがconfig.iniに含まれるようになりました。

self.configwrite = ConfigParser.RawConfigParser()
configread = SafeConfigParser()
configread.read('config.ini')

driver = configread.get('DataBase Settings','Driver')
server = str(configread.get('DataBase Settings','Server'))
db = str(configread.get('DataBase Settings','Database'))
user = str(configread.get('DataBase Settings','Username'))
password = str(configread.get('DataBase Settings','Password'))'

pyodbc connectステートメントでこれらの変数を渡すにはどうすればよいですか?

私はこれを試しました:

self.db = pyodbc.connect('driver={Driver};server=server;database=db;uid=user;pwd=password')

しかし、エラーが発生します。

4

3 に答える 3

19

接続機能の他のオプション:

# using keywords for SQL Server authentication
self.db = pyodbc.connect(driver=driver, server=server, database=db,
                         user=user, password=password)

# using keywords for Windows authentication
self.db = pyodbc.connect(driver=driver, server=server, database=db,
                         trusted_connection='yes')    
于 2012-04-10T12:17:45.130 に答える
15
self.db = pyodbc.connect('driver={%s};server=%s;database=%s;uid=%s;pwd=%s' % ( driver, server, db, user, password ) )

%sは、文字列に変数を含めるために使用されます

変数は、%の後の順序に従って文字列に配置されます

于 2012-04-10T08:07:37.923 に答える
0

pyodbcライブラリを使用したSQL接続文字列での文字列と入力変数の混合- この回答に触発されたPython

`conn=pyodbc.connect('Driver={SQL Server};'
                    'Server='+servername+';'
                    'Database=master;'
                    'UID=sa;'
                    'PWD='+pasword+';'
                    )`
于 2021-04-17T19:20:18.127 に答える