Connecting to SQLServer 2005 with adodbapi

扶醉桌前 提交于 2019-12-05 06:22:04

Try this connection string:

Initial Catalog=XXX; Data Source=<servername>\\<SQL Instance name>; Provider=SQLOLEDB.1; Integrated Security=SSPI

Update

Umm ok. Looking at the source for adodbapi I would have to say that you are suffering a COM error. (yeah I know the traceback says that). But specifically with initialising the relevant COM objects.

This means that your connection string has nothing to do with the traceback. I think a good place to start would be to make sure that your copy of pythoncom is up-to-date.

It could be that win32com/pythoncom does not support Python 3K (3.0 onwards) yet, but after a minute of googleing I have not found anything useful on that, I'll leave it to you.

This code should run successfully when you have fixed your problem (and should fail at the moment).

import win32com.client
import pythoncom
pythoncom.CoInitialize()
win32com.client.Dispatch('ADODB.Connection')

Also any exception that code throws would be useful to help debug your problem.

In case anyone else finds this thread looking for the resolution to a similar error that I saw with Python 2.7:

Traceback (most recent call last):
  File "get_data.py", line 10, in <module>
    connection = get_connection(r"XXX\YYY", "DB")
  File "get_data.py", line 7, in get_connection
    conn = adodbapi.connect(connstring)
  File "C:\Python27\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 "Data Source=XXX\\YYY; Initial Catalog=DB; Provider=SQLOLEDB.1; Integrated Security=SSPI"')

In my case the simple solution was to install Python for Windows Extensions (pywin32) from here: http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/

I had the same problem, and I tracked it down to a failure to load win32com.pyd, because of some system DLLs that was not in the "dll load path", such as msvcp100.dll

I solved the problem by copying a lot of these dll's (probably too many) into C:\WinPython-64bit-3.3.3.2\python-3.3.3.amd64\Lib\site-packages\win32

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!