Python / ADOX: '找不到指定模块。' (win32扩展)

2 投票
1 回答
1454 浏览
提问于 2025-04-15 13:39

我正在使用pywin32,版本是python 2.5。

我在按照这个网站上的说明进行操作:http://www.ecp.cc/pyado.html

创建一个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)

有没有人知道我可能漏掉了什么?

1 个回答

4

解决方案:虽然在COM浏览器中可以看到ADOX这个库,但它并没有被“正确注册”。根据这里的说明,我在开始菜单的运行框中执行了以下命令:

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

请注意,这是在一台运行Windows XP SP2的机器上。我猜注册表可能以某种方式损坏了?总之,我对Windows编程还很陌生,所以我的解释可能不太准确,但希望这个解决办法能对某些人有所帮助。

撰写回答