簡體   English   中英

無法使用 python adodbapi 庫建立數據庫連接

[英]Unable to make database connection using python adodbapi library

我正在嘗試使用 python 庫adodbapi最新的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;"')

請任何人都可以讓我知道我的連接字符串中有什么問題/缺失嗎?

pypi引用這個,

先決條件:

  • C Python 2.7 或 3.5 或更高版本和 pywin32(Mark Hammond's python for windows extensions。)或 Iron Python 2.7 或更高版本。 (適用於除 BUFFER 之外的所有數據類型的 IPy2.0)

安裝:

  • (Windows 上的 C-Python):安裝 pywin32(“pip install pywin32”),其中包括 adodbapi。
  • (Windows 上的 IronPython):從http://sf.net/projects/adodbapi下載 adodbapi。 打開拉鏈。 以管理員身份打開命令窗口。 CD 到包含解壓縮文件的文件夾。 使用您選擇的 IronPython 運行“setup.py install”。

您是否安裝了adodbapi庫的所有先決條件?

如果我沒有安裝pywin32庫,我能夠重現該錯誤。

使用以下命令安裝pywin32庫:

pip install pywin32

我正在嘗試使用下面的代碼使用python庫adodbapi最新的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;"')

請任何人讓我知道我的連接字符串出了什么問題/丟失了嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM