実現したいこと
pyodbcからSQL Server Expressにアクセスしたい。
下記のVBSで接続できたので、pythonでも試したいと思いました。
VBS
1Const CnStr = "Provider=SQLOLEDB;Data Source=aaa.bbb.ccc.ddd,eeeee;Initial Catalog=xxxx;UID=yyyy;PWD=zzzz;" 2Dim DBcn 3Set DBcn = CreateObject("ADODB.Connection") 4DBcn.Open CnStr
発生している問題・エラーメッセージ
connect= pyodbc.connect(…) pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server が存在しないか、アクセスが 拒否されました。 (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (1326); [08001] [Microsoft][ODBC SQL Server Driver]接続文字列の属性が正しくありません。 (0)')
該当のソースコード
Python
1import pyodbc 2connect= pyodbc.connect('DRIVER={SQL Server};' + \ 3 'SERVER=aaa.bbb.ccc.ddd\SQLEXPRESS01;' + \ 4 'PORT=eeeee;' + \ 5 'DATABASE=xxxx;' + \ 6 'UID=yyyy;' + \ 7 'PWD=zzzz')
試したこと
文字列のエスケープ周りか、
あるいはサーバのIPではホスト名じゃないとダメか、などを
試行錯誤しました。
localhostからpyodbcでSQLServerにアクセス→〇K
リモート(Win10)からVBSでSQLServerにアクセス→〇K
リモート(Win10)からsqlcmdでSQLServerにアクセス→〇K
リモート(Win10)からpyodbcでSQLServerにアクセス→NG
リモート(Win10)に一度DSNを設定してpyodbcでSQLServerにアクセス→OK
リモート(Win10)でDSNを削除してpyodbcでSQLServerにアクセス→OK
別のリモート(Win10)からpyodbcでSQLServerにアクセス→NG
もう少し模索します。。。

回答1件
あなたの回答
tips
プレビュー