我们使用Delphi 10程序读取Access数据库。除了我相信它使用称为DAO.pas和DAO_TLB.pas的单元外,我对它的操作方式不甚了解。
我最近从Office 2007升级到Office 2016,此后,Delphi程序无法从数据库读取;它给出了错误:
项目MyProj.exe引发异常类EOleSysError,并显示消息“类未注册”。
我尝试搜索以解决此问题,但由于我不十分了解幕后情况,因此一直在努力。我尝试安装Access 2016类型库,但这似乎没有任何区别。
非常感谢您的帮助。
谢谢, 汤姆
编辑:DAO.pas是here。 DAO_TLB.pas是触发错误的位置;错误的功能是:
class function CoDBEngine.Create: _DBEngine;
begin
Result := CreateComObject(CLASS_DBEngine) as _DBEngine;
end;
其中CLASS_DBEngine是声明为的常量:
CLASS_DBEngine: TGUID = '{CD7791B9-43FD-42C5-AE42-8DD2811F0419}';
我还刚刚注意到,当错误发生时,如果我单击“继续”而不是中断,则会出现一个新错误,说:
未注册课程,课程ID:{CD7791B9-43FD-42C5-AE42-8DD2811F0419}
即ClassID是CLASS_DBEngine常量。