От време на време нашите клиенти ни питат какви са техните опции, когато опитът им да използват база данни на Access като бекенд на приложението им се провали с:
[Microsoft][ODBC Driver Manager]The specified DSN contains an architecture mismatch between the Driver and Application
Причината за проблема е, че архитектурата на драйвера, използван за свързване с Access, е различна от тази на приложението им, т.е. те се опитват да използват 64-битов драйвер за Access с 32-битово приложение. Те се озовават в тази ситуация, защото последните версии на Access използват формата ACCDB за своите файлове с база данни, а драйверът на Access за ACCDB файлове е само 64-битов.
(Въпросният драйвер е ODBC драйвер за Access. ODBC е технология за достъп до данни, която позволява на приложенията да се свързват с всяка база данни, за която е наличен ODBC драйвер.)
Предвид тази ситуация са налични следните решения:
- Използвайте вместо това база данни на Access във формат MDB, която в Microsoft Access е обозначена като Бази данни на Microsoft Access (2002-2003 формат) в диалоговия прозорец Файл Нова база данни.
Windows включва 32-битов ODBC драйвер за Access, който е съвместим с MDB файлове (но не и ACCDB файлове.) Ще трябва да конфигурирате източник на данни за Access в 32-битовата версия на ODBC Administrator, за да използвате този драйвер. За да стартирате 32-битовата версия на ODBC администратора, в диалоговия прозорец Изпълнение на Windows въведете:
%windir%\syswow64\odbcad32.exe
Трябва обаче да проверите дали имате нужда от някои от допълнителните функции на Access, които ACCDB файловете предоставят, преди да се ангажирате с това решение.
- Инсталирайте AccessDatabaseEngine на Microsoft. Това осигурява 32-битов ODBC драйвер за Access, който поддържа файлове с база данни във формат ACCDB. Въпреки това Windows 8 и по-нови версии не са посочени като поддържани операционни системи за AccessDatabaseEngine.
- Използвайте Easysoft ODBC-ODBC Bridge, който позволява на 32-битово приложение да използва 64-битов ODBC драйвер (и обратно).