Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением. ЯВА

Я пытаюсь подключиться к базе данных, созданной MS Access, используя Java, но я не могу справиться. Я использую ODBC, и я получаю это исключение:

java.sql.SQLException: [Microsoft] [Менеджер драйверов ODBC] Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением

Моя Java:

package javaapplication2; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; /** * * @author Owner */ public class JavaApplication2 { /** * @param args the command line arguments * */ public static void main(String[] args) { // TODO code application logic here try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String sourceURL = new String("jdbc:odbc:myDatabase"); System.out.println(sourceURL); Connection dbConnection = DriverManager.getConnection(sourceURL,"admin",""); Statement myStmt = dbConnection.createStatement(); String query = "INSERT INTO People(ID, Name, Surname, Age, Contact, Location, Course) VALUES" + " (1007, 'Elroy', 'Smith', '33', 21366688, 'Somewhere', 'somecourse')"; myStmt.executeUpdate(query); ResultSet results = myStmt.executeQuery("SELECT * FROM People"); while(results.next()) { System.out.print(results.getString(1)); System.out.print(results.getString(2)); System.out.print(results.getString(3)); System.out.println(results.getString(4)); } results.close(); } catch(ClassNotFoundException cnfe) { System.out.println(cnfe); } catch(SQLException sqle) { System.out.println(sqle); } } } 

Никто из них не сделал это для меня. Я нашел ответ на MSDN. Однако были намеки на это. Архитектура ошибки ссылается на 32 против 64 бит. Мое решение состояло в том, чтобы выяснить, какое приложение работает под (Access), в котором находится 32b. Я нашел это, посмотрев вкладку «Процесс» Диспетчера задач, где все 32b-процессы имеют * 32 конец своих имен. Как было сказано, панель управления запускает 64- битную версию ODBC отсюда

c:\windows\system32\odbcad32.exe

и 32-битная версия находится здесь:

c:\windows\sysWOW64\odbcad32.exe (проще всего скопировать и вставить в диалоговое окно запуска)

Поэтому я установил DSN с именами, заканчивающимися на 32 и 64 в каждой из соответствующих панелей управления ODBC (администратор AKA), которые указывали на то же самое. Затем я выбрал / выбрал правильный вариант, основываясь на том, использует ли это приложение 32b или 64b.

Вы получаете такую ​​же ошибку при попытке подключиться к базе данных MySQL из MS-Access, когда бит-версия (32 против 64) Access не соответствует

  1. бит версии используемого драйвера ODBC
  2. битную версию ODBC Manager, которую вы использовали для ее настройки.

Для тех из вас, кто пытается подключить MS-Access к MySQL в 64-битной системе Windows, я прошел через пытки, пытаясь заставить его работать как с MS-Access 2010, так и с MS-Access 2013. Наконец, он работал, и вот уроки, которые я изучил на этом пути:

Я купил новый Windows 7, 64-разрядный ноутбук, и у меня есть приложение, которое полагается на MS-Access, используя таблицы MySQL.

  1. Я установил последнюю версию MySQL, 5.6, используя установку пакета All In One. Это позволяет одновременно установить как базу данных, так и драйверы ODBC. Это хорошо, но драйвер ODBC, который он устанавливает, кажется 64-разрядным, поэтому он не будет работать с 32-разрядным MS-Access. Это также кажется немного багги – не обязательно на этом. Когда вы добавляете новый DSN в ODBC Manager, этот драйвер отображается как «Microsoft ODBC for Oracle». Я не мог заставить его работать. Мне пришлось установить 32-битный, который обсуждается ниже.

    • После установки MySQL работал отлично. Я восстановил базу данных приложения MySQL обычным способом. Теперь я хочу подключиться к нему с помощью MS-Access.

  2. Я ранее устанавливал Office 2013, который я предположил, был 64 бит. Но после проверки версии (File, Account, About Access) я вижу, что она 32 бит. Оба Access 2010 и 2013 чаще всего продаются как 32-разрядные версии.

  3. Моя машина – 64-битная машина. Поэтому по умолчанию, когда вы отправляете настройки своего DSN для MS-Access и обычным образом переходите в ODBC Manager через панель управления, «Административные параметры», вы получаете 64-разрядный менеджер ODBC. Вы не можете этого знать! Ты просто не можешь сказать. Это огромная добыча! Из этого невозможно установить DSN и успешно подключиться к MS Access 32 бит. Вы получите страшную ошибку:

    «указанный dsn содержит несоответствие архитектуры …»

  4. Вы должны загрузить и установить 32-битный драйвер ODBC из MySQL. Я использовал версию 3.5.1

    http://dev.mysql.com/downloads/connector/odbc/3.51.html

  5. Вы должны сообщить диспетчеру ODBC в панели управления, чтобы он поднялся и должен явно вызывать 32-разрядный ODBC Manager с помощью этой команды, выполненной в командной строке «Пуск»:

    C: \ Windows \ SysWOW64 \ odbcad32.exe

    Я создал ярлык для этого на моем рабочем столе. Отсюда создайте свой DSN с этим менеджером. Важный момент: СОЗДАЙТЕ КАК СИСТЕМУ DSNS, НЕ ПОЛЬЗОВАТЕЛЬСКИХ DSNS! Это немного помогло мне.

    Кстати, 64-битная версия ODBC Manager также может быть запущена явно:

    C: \ WINDOWS \ system32 \ odbcad32.exe

  6. После того, как вы установили 32-битный драйвер ODBC из MySql, при нажатии кнопки «Добавить» в ODBC Manager вы увидите 2 указанных драйверов. Выберите «MySQL ODBC 5.2 ANSI Driver». Я не пробовал драйвер UNICODE.


Это и есть. После того, как вы определили свой DSN в 32-разрядном ODBC-менеджере, вы можете подключиться к MySQL обычным способом изнутри Access – External Data, ODBC Database, Link to the Database, выберите Machine Data Source и DSN, которые вы создали для своего MySQL firebase database будет там.

Там несоответствие архитектуры. Драйвер JDBC и ваш JDK должны иметь одинаковую архитектуру. Если вы используете 32-битный драйвер и ваш JDK – 64 бит, вы получите эту ошибку.

См. Это

Исправление: зависит от вашей архитектуры.

Вам понадобится 64-разрядные драйверы, если ваша Java – 64-разрядная.

Загрузить: http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

По умолчанию Командная строка подключена к System32. Запустите 64-битную командную строку, то есть C:\WINDOWS\SYSWOW64\CMD.EXE . В этом случае скомпилируйте и запустите приложение Java.

Проблема, с которой вы столкнулись, может быть связана с тем, что у вас были 32-битные версии Office 32 и Command Prompt 64 бит. Чтобы решить проблему, вам необходимо выполнить следующие шаги:

  1. Откройте ODBC Manager для DSN, используя: C: \ Windows \ SysWOW64 \ odbcad32.exe. Это откроет администратор данных ODBC для 32-битной версии, и вы увидите все драйверы базы данных.

  2. После этого вам нужно открыть 32-битную командную строку, используя: C: \ Windows \ SysWOW64 \ cmd.exe. Это откроет 32-битную версию командной строки. В этом новом CMD, пожалуйста, перекомпилируйте свою программу Java и запустите свою программу.

Надеюсь, это поможет.

Немного поздно, но поскольку я столкнулся с той же проблемой, в вашем конкретном сценарии, я решил, что добавлю свое решение.

У меня Windows 7 (64-разрядная версия) и Office 2010 (32-разрядная версия). Я попытался с помощью строки подключения DSN-less:

 jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=I:/TeamForge/ORS/CTFORS.accdb 

и я попытался подключиться к DSN, используя как версии System32, так и SysWOW64 администратора ODBC, и ни одно из них не сработало.

Что в конечном итоге сработало, было сопоставление бит-версии Java с битовой версией Office. Как только я это сделал, я мог бы использовать либо режим DSN, либо DSN, но без каких-либо проблем.

Я видел этот ответ, и это сработало для меня. https://msdn.microsoft.com/en-us/library/ms712362%28v=vs.85%29.aspx

После того, как вы установили драйвер ODBC из программы установки драйвера, вы можете определить для него один или несколько источников данных. Имя источника данных (DSN) должно предоставлять уникальное описание данных; например, расчет заработной платы или кредиторской задолженности. Источники пользовательских и системных данных, которые определены для всех установленных драйверов, перечислены на вкладках User DSN или System DSN диалогового windows «Администратор источника данных ODBC». Источники файлов данных в данном каталоге перечислены на вкладке «Файл DSN»; каталог, который будет показан, вводится в поле «Поиск» на вкладке «Файл DSN». System_CAPS_noteNote

Чтобы управлять источником данных, который подключается к 32-разрядному драйверу под 64-разрядной платформой, используйте c: \ windows \ sysWOW64 \ odbcad32.exe. Чтобы управлять источником данных, который подключается к 64-битовому драйверу, используйте c: \ windows \ system32 \ odbcad32.exe. В «Администрировании» в 64-разрядной операционной системе Windows 8 есть значки для 32-битного и 64-битного диалогового windows «Администратор источника данных ODBC».

Если вы используете 64-разрядный odbcad32.exe для настройки или удаления DSN, который подключается к 32-разрядному драйверу, например, Driver do Microsoft Access (* .mdb), вы получите следующее сообщение об ошибке:

Указанный DSN содержит несоответствие архитектуры между Драйвером и Приложением

Чтобы устранить эту ошибку, используйте 32-разрядный odbcad32.exe для настройки или удаления DSN.

Источник данных связывает конкретный драйвер ODBC с данными, которые вы хотите получить через этот драйвер. Например, вы можете создать источник данных для использования драйвера ODBC dBASE для доступа к одному или нескольким файлам dBASE, найденным в определенном каталоге на вашем жестком диске или сетевом диске. Используя ODBC Data Source Administrator, вы можете добавлять, изменять и удалять источники данных, как описано в следующей таблице.

Вы создали DSN сначала на панели управления> «Администрирование»> «ODBC»> «Системный DSN». Назовите его так же, как «myDatabase», и если я попрошу найти файл базы данных / доступа, укажите путь, используя опцию просмотра. После того, как ур DSN будет успешно создан, вы сможете легко получить доступ к Ур БД.

Если вы используете netbeans, перейдите в tools-> java Platform, измените jdk_home, который указывает на c: / programfiles / java / jdk1_7 на c: programFiles (x86) / java / jdk1_6_21

если не редактируется, найдите netbeans.cnf и внесите изменения, как указано abouve для jdk_home. перезагрузите чистые чипы и как это работает. У меня была та же проблема, но я работал.

У меня было много проблем с подключением к MySQL с 64-разрядного ноутбука под управлением Windows 7 с использованием MS Access 2010. Я нашел, что предыдущая статья очень полезна, но до сих пор не удалось подключиться с помощью odbc 3.5.1. Поскольку ранее я связал 32-битную машину с использованием Connector / ODBC 5.1.13, я загрузил эту версию и настроил ее, используя приведенные выше инструкции. Успех. Ответ, похоже, заключается в том, чтобы попробовать разные версии Connector.odbc.

Если вы подключаетесь с 64-разрядной платформы с использованием 32-разрядного драйвера, запустите исполняемый файл C: \ Windows \ SysWOW64 \ odbcad32.exe и создайте DSN. Это будет работать.

Я столкнулся с этой проблемой при обновлении до сервера Windows 7 с некоторыми устаревшими приложениями CLASP. Попытка запустить 32-битное приложение на 64-битной машине.

Попробуйте настроить пулы приложений на 32-разрядную совместимость на True и / или создать dsn в 32 и 64 бит.

Откройте окно источника данных odbc в обеих версиях из windows запуска. C: \ Windows \ SysWOW64 \ odbcad32.exe C: \ Windows \ system32 \ odbcad32.exe

Я столкнулся с этой проблемой. Это связано с компьютерной архитектурой и архитектурой базы данных, которую вы используете.

Если вы используете 32-битную операционную систему, все работает хорошо, потому что вы можете установить только 32-битное программное обеспечение. Проблема возникает, когда вы используете 64-битную операционную систему.

Для того, чтобы решить эту проблему, просто – я долго искал эту проблему.

  1. Знание операционной системы – 64 бита, но Microsoft Office – 32 бита.
  2. Поэтому для того, чтобы вы могли получить доступ к своей базе данных с помощью NetBean IDE (при условии, что вы используете это), вам необходимо установить 32-битный JDK. Если вы установили 64 бита, вам необходимо удалить его и установить 32 бита.

Вы не можете получить доступ к своей базе данных, потому что ваша 64-разрядная JVM не такая же, как 32-разрядная JVM.

Чтобы добавить вашу базу данных в свою систему 1. Панель управления 2. Инструменты администратора 3. Источник данных (ODBC) щелкните правой кнопкой мыши по нему, изменив цель на \ sysWOW64 \ odbcad32.exe, изменив начало на r% \ SysWOW64

Тогда вы сможете работать. Сообщите мне, если у вас возникли проблемы с этим.

Спасибо!

Я исправил ошибку.

Следуйте шагам:

  1. Установите JDK версии 32bt
  2. Установка MS-Office 2007
  3. Настроить панель управления: a. Панель управления b. Инструменты администратора c. Источник данных (ODBC)

    щелкните правой кнопкой мыши по нему, чтобы изменить цель на \sysWOW64\odbcad32.exe изменив начало в r%\SysWOW64

Выполните его и удачи. Работает в Windows 7, а также 8

Удалите новую версию MS-Office и установите только MS-Office 2007, если проблема по-прежнему сохраняется

Чтобы решить эту проблему, сначала убедитесь, что ваше программное обеспечение Java должно быть 32-битной версией, если это 64-разрядная версия, ясно, что она покажет ошибку несоответствия, поэтому попробуйте переустановить 32-разрядную версию Java. И запустите java-программу в команде c:\windows\sysWOW64\odbcad32.exe (проще всего скопировать и вставить в диалоговое окно запуска), достаточно, чтобы ваша программа определенно работала

Я думаю, что это также будет более полезным.

для совпадения архитектуры,

Я просто скопирую файл jdk из 32-битного файла C: \ Program Files (x86) \ Java \ jdk1.7.0_71 и вставьте его в 64-битный файл C: \ Program Files \ Java \ jdk1.7.0_10, затем переименуйте файл в соответствии с заменяемым файлом, чтобы избежать ошибки IDE (netbeans)

тогда вам будет хорошо.

Примечание. Вы должны использовать 64-битные файлы, поэтому, когда вы хотите создать 64-битное приложение, вы можете вернуть его в свое местоположение

Чтобы решить эту проблему, сначала убедитесь, что ваше программное обеспечение Java должно быть 32-битной версией, если это 64-разрядная версия, ясно, что она покажет ошибку несоответствия, поэтому попробуйте переустановить 32-разрядную версию Java. И запустите java-программу в команде c: \ windows \ sysWOW64 \ odbcad32.exe (проще всего скопировать и вставить в диалоговое окно запуска), достаточно, чтобы ваша программа определенно работала

Перейдите по этой ссылке и загрузите драйвер ODBC для 64-разрядной ОС.

http://www.microsoft.com/en-us/download/details.aspx?id=13255

  • Как увеличить производительность для массивных ВСТАВКИ для связанных таблиц ODBC в Access?
  • Excel: используйте значение ячейки в качестве параметра для SQL-запроса
  • Извлечение текста UTF-8 из MySQL в R возвращает «????»
  • Давайте будем гением компьютера.