Мое решение использует базу данных 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](https://i.stack.imgur.com/XeNZH.png)
Это соответствует Microsoft В заметке о выпуске для KB4484218 указано, что эта специфицированная c DLL была изменена.
Моя ставка заключается в том, что MS изменила этот компонент драйвера MS Access. Таким образом ломая, по крайней мере, реализацию FireDA C.