首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用adodbapi连接到SQLServer 2005

用adodbapi连接到SQLServer 2005
EN

Stack Overflow用户
提问于 2011-05-22 06:03:53
回答 3查看 8.4K关注 0票数 6

我对Python非常陌生,我在Win 7-32工作站上安装了Python3.2。尝试使用adodbasi-2.4.2.2连接到MSSQLServer 2005Server,这是对该包的最新更新。

代码/连接字符串如下所示:

adodbapi.connect('Provider=SQLNCLI.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=XXX;Data Source=123.456.789‘;

从adod浸i中,我不断地得到错误(这是来自Wing shell的整个错误消息):

回溯(最近一次调用):文件"D:\Program \ raise 4.0\src\debug\tserver_sandbox.py",第2行,在if name == == File 298中,在connect InterfaceError #可能是COM错误adodbapi.adodbapi.InterfaceError:

我可以跟踪代码,并看到异常的发生。

我还尝试在OLEDB提供程序中使用conn字符串并集成Windows安全性,结果是相同的。

所有这些连接字符串都可以在我的工作站上的UDL文件和SSMS中很好地工作,但是在adodbapi中失败时也会出现同样的错误。

我该怎么解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-14 16:13:56

尝试以下连接字符串:

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

更新

嗯好的。看看阿多巴米的来源,我不得不说你遇到了一个COM错误。(是的,我知道回溯说)。特别是初始化相关的COM对象。

这意味着连接字符串与跟踪无关。我认为一个很好的起点是确保你的pythoncom的副本是最新的。

可能win32com/pythoncom还不支持Python3K (3.0以后),但是在googleing上搜索了一分钟之后,我还没有发现任何有用的东西,我将把它留给您。

当您修复了问题时,这段代码应该会成功运行(目前应该失败)。

代码语言:javascript
复制
import win32com.client
import pythoncom
pythoncom.CoInitialize()
win32com.client.Dispatch('ADODB.Connection')

此外,代码抛出的任何异常都将有助于调试您的问题。

票数 4
EN

Stack Overflow用户

发布于 2015-03-05 10:05:22

如果其他人发现这个线程正在查找与我在Python 2.7中看到的类似错误的解决方案:

代码语言:javascript
复制
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"')

在我的例子中,简单的解决方案是从这里安装Python扩展(pywin32):http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/

票数 3
EN

Stack Overflow用户

发布于 2014-01-31 12:47:30

我也遇到了同样的问题,我追踪到了加载win32com.pyd失败的原因,因为一些系统dll不在"dll加载路径“中,比如msvcp100.dll。

我通过将许多这些dll(可能太多)复制到C:\WinPython-64bit-3.3.3.2\python-3.3.3.amd64\Lib\site-packages\win32中解决了这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6086341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档