3

adodbapi以下のコードを使用して、Pythonライブラリと 最新の OLEDBプロバイダーを使用してSQL Serverデータベース接続を確立しようとしています-

import adodbapi
import configparser

def try_connection():    
    _SERVER_NAME = "SERVERNAME"
    _DATABASE = "TESTDB"
    _USERNAME = "TERSTUSER"
    _PASSWORD = "TESTPWD"  

    conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};UID={2};PWD={3};".format(_SERVER_NAME,_DATABASE,_USERNAME,_PASSWORD))
    cursor = conn.cursor()

print( try_connection() )

しかし、私は接続を行うことができません。把握できない巨大なトレース エラーを下回っています。

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python 3.5\lib\site-packages\adodbapi\adodbapi.py", line 97, in make_COM_connecter
    c = Dispatch('ADODB.Connection') #connect _after_ CoIninialize v2.1.1 adamvan
NameError: name 'Dispatch' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python 3.5\lib\site-packages\adodbapi\adodbapi.py", line 116, in connect
    co.connect(kwargs)
  File "C:\Program Files (x86)\Python 3.5\lib\site-packages\adodbapi\adodbapi.py", line 266, in connect
    self.connector = connection_maker()
  File "C:\Program Files (x86)\Python 3.5\lib\site-packages\adodbapi\adodbapi.py", line 99, in make_COM_connecter
    raise api.InterfaceError ("Windows COM Error: Dispatch('ADODB.Connection') failed.")
adodbapi.apibase.InterfaceError: Windows COM Error: Dispatch('ADODB.Connection') failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "TestAdodb.py", line 41, in <module>
    print( try_connection() )
  File "TestAdodb.py", line 18, in try_connection
    conn = adodbapi.connect("PROVIDER=MSOLEDBSQL;Data Source={0};Database={1};UID={2};PWD={3};".format(_SERVER_NAME,_DATABASE,_USERNAME,_PASSWORD))
  File "C:\Program Files (x86)\Python 3.5\lib\site-packages\adodbapi\adodbapi.py", line 120, in connect
    raise api.OperationalError(e, message)
adodbapi.apibase.OperationalError: (InterfaceError("Windows COM Error: Dispatch('ADODB.Connection') failed.",), 'Error opening connection to "PROVIDER=MSOLEDBSQL;Data Source=SERVERNAME;Database=TESTDB;UID=TERSTUSER;PWD=TESTPWD;"')

接続文字列のどこが間違っているか、何が欠けているか教えてください。

4

1 に答える 1

3

これをpypiから引用すると、

前提条件:

  • C Python 2.7 または 3.5 以降および pywin32 (Windows 拡張用の Mark Hammond の python) または Iron Python 2.7 以降。(BUFFER を除くすべてのデータ型に対して IPy2.0 で動作します)

インストール:

  • (Windows 上の C-Python): adodbapi を含む pywin32 ("pip install pywin32") をインストールします。
  • (Windows 上の IronPython): http://sf.net/projects/adodbapiから adodbapi をダウンロードします。zip を解凍します。管理者としてコマンド ウィンドウを開きます。解凍したファイルを含むフォルダーに CD を移動します。選択した IronPython を使用して「setup.py install」を実行します。

adodbapiライブラリの前提条件をすべてインストールしましたか?

pywin32ライブラリがインストールされていない場合、エラーを再現できました。

pywin32以下のコマンドを使用してライブラリをインストールします。

pip install pywin32
于 2019-12-25T12:07:28.327 に答える