FireDA C MSA cc ODB C Драйвер не работает после обновления KB4484218 - PullRequest
0 голосов
/ 28 января 2020

Мое решение использует базу данных ms-access и FireDA C '' MSA cc 'Driver для доступа к базе данных (* .mdb).

Некоторые из моих клиентов сталкиваются с проблемами с момента установки январь windows обновление для Office ( KB4484218 - обратите внимание, что в зависимости от версии office, установленной на компьютере, один и тот же патч может быть применен с другой КБ. Для ссылок я приведу их ниже ).

Приложение, которое раньше работало на этом же компьютере, больше не загружается и завершается ошибкой при установлении соединения с БД. Я откатил эту спецификацию c КБ, и приложение снова работает. Я знаю, по крайней мере, об одном другом поставщике программного обеспечения, затронутом этой проблемой.

У меня следующие вопросы:

  • Кто-нибудь еще затронул это?
  • Кто-нибудь знает, если это связано с FireDA C или более широкой проблемой?
  • Кто-нибудь смог найти информацию от Embarcadero или Microsoft по этому поводу?

Обновления, которые могут вызвать Насколько мне известно, эта проблема:

Office 2010: описание обновления безопасности для Office 2010 (KB4484127)

Office 2013: описание обновления безопасности для Office 2013 (KB4484119)

Office 2016: Описание обновления безопасности для Office 2016 (KB4484113)

Office 2016 (KB4484218) 32- Бит-выпуск

Office 2016 (KB4464586) 32-разрядная версия

Office 2016 (KB4484168) 32-разрядная версия

ОБНОВЛЕНИЕ: В соответствии с запросом, здесь немного больше контекста и информация об этом sue.

  FDConnection1.Params.DriverID := 'MSAcc';
  FDConnection1.Params.Database := Edit1.Text; //path to .mdb file
  FDConnection1.Open;
  FDQuery1.Connection := FDConnection1;
  FDQuery1.SQL.Add( 'SELECT * FROM ' + edit3.Text); //insert column name
  FDQuery1.open;
  FDQuery1.first;
  ShowMessage(FDQuery1.FieldByName(edit2.Text).AsInteger.ToString);
  FDConnection1.Close

При выполнении приведенного выше кода в системе, в которой не установлен KB4484218, все работает правильно, и приложение отображает значение. Выполняя тот же код на том же компьютере после применения KB4484218, я получаю нарушение прав доступа к ACECORE.DLL

Access violation

Это соответствует Microsoft В заметке о выпуске для KB4484218 указано, что эта специфицированная c DLL была изменена.

Моя ставка заключается в том, что MS изменила этот компонент драйвера MS Access. Таким образом ломая, по крайней мере, реализацию FireDA C.

1 Ответ

1 голос
/ 05 февраля 2020

Сегодня у меня была точно такая же проблема, и я решил ее следующим образом:

  1. Поместите компонент FDPhysMSAccessDriverLink в форму.
  2. Установите свойство ODBCDriver Microsoft Access Driver (* .mdb)

Это решило проблему, потому что тогда ODB C использует старую DLL, которую Microsoft не испортила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...