Python2.7。I pymssqlで失敗 でユニコードをSQL Serverに送信する必要があります。現在、pypyodbc
を機能させようとしています(対照的に) to pyodbc
)、それが与えるように 動作するユニコードの例 。問題は、例の接続文字列が私が認識しているもののように見えないことです。私は これを調べました 、そして少し試行錯誤した後、この文字列を作成しました:
conn = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='me';PWD='MyPassword';DATABASE='db'")
接続文字列に焦点を当てたDatabaseError
を取り戻しました:
C:\Anaconda\lib\site-packages\pypyodbc.pyc in __init__(self, connectString, autocommit, ansi, timeout, unicode_results, readonly, **kargs)
---> 2 conn = pypyodbc.connect("DRIVER={SQL Server};SERVER='MyServer';UID='me';PWD='password';DATABASE='db'")
C:\Anaconda\lib\site-packages\pypyodbc.pyc in __init__(self, connectString, autocommit, ansi, timeout, unicode_results, readonly, **kargs)
---> 2273 self.connect(connectString, autocommit, ansi, timeout, unicode_results, readonly)
C:\Anaconda\lib\site-packages\pypyodbc.pyc in connect(self, connectString, autocommit, ansi, timeout, unicode_results, readonly)
---> 2321 check_success(self, ret)
C:\Anaconda\lib\site-packages\pypyodbc.pyc in ctrl_err(ht, h, val_ret, ansi)
---> 919 raise DatabaseError(state,err_text)
DatabaseError: (u'08001', u'[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.')
Pymssqlを使用して正常に接続するために資格情報を使用したので、資格情報が正しいことを知っています。何が足りないのですか?
接続文字列のserver
、uid
、pwd
、およびdatabase
属性から一重引用符を削除します。
conn = pypyodbc.connect("DRIVER={SQL Server};SERVER=MyServer;UID=me;PWD=password;DATABASE=db")
pypyodbc
はpyodbc
との互換性について言及しているので、少し時間を取って pyodbc接続文字列docs および pyodbc.connect() の例を確認してください。私はpyodbcでこの構文を使用します:
cnxn = connect(driver='{SQL Server}', server='localhost', database='test', uid='me', pwd='me2')
接続文字列にポート番号(1433)を残しておくと、Linuxクライアント(Windows 7ではない)からエラーが発生しました。おそらく構成の問題ですが、追跡する時間がありませんでした。
他の誰かを助ける場合に備えて、これをそこに置いてください。