Мы используем программу Delphi 10, которая читает в базе данных Access. Я не очень хорошо понимаю, как это происходит, за исключением того, что я считаю, что он использует модули, называемые DAO.pas и DAO_TLB.pas.
Я недавно обновил Office 2007 до Office 2016, и с тех пор программа Delphi не может читать из базы данных; выдает ошибку:
Project MyProj.exe поднял класс исключения EOleSysError с сообщением «Класс не зарегистрирован».
Я пытался найти, как это исправить, но изо всех сил, потому что я не совсем понимаю, что происходит под капотом. Я пытался установить библиотеку типов Access 2016, но, похоже, это ничего не изменило.
Чрезвычайно благодарен за любую помощь.
Спасибо,
Том
РЕДАКТИРОВАТЬ: DAO.pas это здесь . 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}';
Я также только что заметил, что при возникновении ошибки, если я нажимаю продолжить, а не прерывать, появляется новая ошибка, говорящая:
Класс не зарегистрирован, ClassID: {CD7791B9-43FD-42C5-AE42-8DD2811F0419}
т.е. ClassID - это константа CLASS_DBEngine.