使Delphi使用新版本的Microsoft Access读取数据库

时间:2019-01-22 18:15:53

标签: delphi ms-access delphi-2010

我们使用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常量。

0 个答案:

没有答案