問題文:.sdfファイルに格納されているデータをPythonに抽出します。 システム設定:Win 10 Pro 64ビット、Python 3.5.2-64ビット、adodbapiライブラリ、SQL CE 3.5PythonとのSQL CE接続
私はプログラミングにはあまり新しく、私は学ぶための最初の言語としてPythonを採用しました。現在、SQL CE 3.5 .sdfファイルを接続する過程で壁にぶつかりました。
私はadodbapiライブラリを使用しました。この問題の解決策を見つけて、接続文字列が正しいことを確認するために、先週広範囲にわたってWebを検索しました。私はスタックオーバーフローとhttps://www.connectionstrings.com/microsoft-sqlserver-ce-oledb-3-5/で提供される複数のオプション/ソリューションを試しました。
コード:
import adodbapi
cons_str = "Provider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.5;" \
"Data Source=D:\Work\Programming\Python\SQL_DataTransfer\LF.sdf;"\
"Persist Security Info=False;" \
"SSCE:Max Database Size=4091"
connection = adodbapi.connect(cons_str)
print(connection)
エラーメッセージ:
トレースバック(最新の呼び出しの最後):
File "D:\Work\Programs\Python35.virtualenvs\sql_output\lib\site-packages\adodbapi\adodbapi.py", line 93, in make_COM_connecter c = Dispatch('ADODB.Connection') #connect after CoIninialize v2.1.1 adamvan NameError: name 'Dispatch' is not defined
上記の例外の取り扱い時には、別の例外が発生しました:
トレースバック(直近の最後のコール):
上記の例外の取り扱い中File "D:\Work\Programs\Python35.virtualenvs\sql_output\lib\site-packages\adodbapi\adodbapi.py", line 112, in connect co.connect(kwargs) File "D:\Work\Programs\Python35.virtualenvs\sql_output\lib\site-packages\adodbapi\adodbapi.py", line 269, in connect self.connector = connection_maker() File "D:\Work\Programs\Python35.virtualenvs\sql_output\lib\site-packages\adodbapi\adodbapi.py", line 95, in make_COM_connecter raise api.InterfaceError ("Windows COM Error: Dispatch('ADODB.Connection') failed.") adodbapi.apibase.InterfaceError: Windows COM Error: Dispatch('ADODB.Connection') failed.
、別の例外が発生しました:
トレースバック(最新の呼び出しの最後):
File "D:/Work/Programming/Python/SQL_DataTransfer/SQL_CE_reportDB.py", line 8, in connection = adodbapi.connect(cons_str) File "D:\Work\Programs\Python35.virtualenvs\sql_output\lib\site-packages\adodbapi\adodbapi.py", line 116, in connect raise api.OperationalError(e, message) adodbapi.apibase.OperationalError: (InterfaceError("Windows COM Error: Dispatch('ADODB.Connection') failed.",), 'Error opening connection to "Provoider=Microsoft.SQLSERVER.MOBILE.OLEDB.3.5;Data Source=D:\Work\Programming\Python\SQL_DataTransfer\LF.sdf;Persist Security Info=False;SSCE:Max Database Size=4091"')
この時点で、任意のヘルプははるかに高く評価されます。
ありがとう、 よろしくお願いいたします。 JD。
は、あなたはそれが3.5ファイルではなく4.0ファイルである100%よろしいですか? – ErikEJ
はい、ビジュアルスタジオで同じファイルを開いています。 –