Получение Delphi для чтения базы данных с новой версией Microsoft Access - PullRequest
0 голосов
/ 22 января 2019

Мы используем программу 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.

...