2

我正在为 python 2.5 运行 pywin32。

我正在按照http://www.ecp.cc/pyado.html给出的 python ADO 的说明进行操作。

创建 ADODB.Recordset 对象可以正常工作。但是当我尝试创建一个 ADOX.Catalog 对象时,我得到一个错误:

>>> cat=win32com.client.Dispatch(r'ADOX.Catalog')
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
  File "C:\Python25\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python25\lib\site-packages\win32com\client\dynamic.py", line 98, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python25\lib\site-packages\win32com\client\dynamic.py", line 78, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
com_error: (-2147024770, 'The specified module could not be found.', None, None)

有什么想法我可能会错过吗?

4

1 回答 1

4

解决方案:即使 ADOX 在 COM 浏览器中显示为可用库,它也没有正确“注册”。按照此处的说明,我在 Start->Run 提示符处执行了以下操作:

regsvr32 "C:\Program Files\Common Files\System\ado\msadox.dll"

请注意,这是在 WinXP SP2 机器上。我猜注册表已经以某种方式损坏了?无论如何,我是 Windows 编程的新手,所以我的解释可能不正确,但也许修复会对某人有所帮助。

于 2009-08-19T22:15:34.303 回答