Я бы хотел обновить приложение, чтобы оно использовало более новый механизм доступа к базе данных Access 2007/2010.В настоящее время он хранит свои данные в базе данных Jet 4.0 (MDB).Мое приложение написано на Delphi и использует ADODB (ADO classic) для взаимодействия с базой данных.Я хотел бы обновить ядро базы данных с Jet 4.0, чтобы предлагать лучшие варианты шифрования.
Я изменил строку подключения в своем приложении, чтобы использовать Microsoft.ACE.OLEDB.12.0, и, несмотря на некоторые ошибки,преобразование прошло на удивление хорошо!Впечатляющая обратная совместимость.
Я также распространяю свое приложение в комплекте Wine для пользователей Mac.Я сталкиваюсь с несколькими проблемами при запуске моего приложения под Access 2010 Database Engine на Wine (1.4-rc1).Странные нарушения доступа появляются.Когда я вместо этого устанавливаю компонент базы данных Access 2007 на Wine, мое приложение прекрасно работает.Так же хорошо, как с Jet 4.0.Похоже, что ядро базы данных Access 2010 не совсем готово для Wine.Облом!
Проблема, с которой я сталкиваюсь, заключается в том, что, если у вас на компьютере Windows установлен Access 2010 Database Engine (например, когда вы устанавливаете Access 2010), он создает новую базу данных и шифрует ее с помощьюболее высокая форма безопасности, несовместимая с Access 2007. Пользователи моего приложения не могли совместно использовать свою базу данных между ПК и Mac (например, через Dropbox), поскольку они больше не будут совместимы.
В Access 2010 выможно установить для него параметр «Использовать устаревшее шифрование».Этот параметр заставляет Access 2010 создавать новые базы данных с использованием шифрования, совместимого с Access 2007. Этот параметр устанавливает раздел реестра «CompatMode», и приложение Access 2010 в этом случае должно использовать другой подход к созданию новых баз данных.
У меня вопрос: как программно создать зашифрованную базу данных, совместимую с Access 2007, из ядра базы данных Access 2010?Если приложение Access 2010 может это сделать, как я могу?Мне известны два метода создания базы данных Access: 1. через DAO (DBEngine.CreateDatabase), 2. через ADOX (Catalog.Create).Я пробовал различные подходы к этим двум методам, и не могу придумать ничего, что создает зашифрованную базу данных, совместимую с Access 2007.