Указанный DSN содержит несоответствие архитектуры между драйвером и приложением.ДЖАВА - PullRequest
81 голосов
/ 17 января 2012

Я пытаюсь подключиться к базе данных, созданной 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);
        }
    }
}

Ответы [ 18 ]

0 голосов
/ 02 июля 2015

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

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

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

тогда тебе пора.

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

0 голосов
/ 07 июля 2014

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

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

Чтобы решить эту проблему, достаточно просто - мне понадобилось много времени, чтобы найти эту проблему.

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

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

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

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

Спасибо!

0 голосов
/ 13 февраля 2015

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

Выполните следующие действия:

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

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

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

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

0 голосов
/ 25 апреля 2014

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

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

0 голосов
/ 22 апреля 2014

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

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

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

0 голосов
/ 17 января 2012

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

0 голосов
/ 30 декабря 2013

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

0 голосов
/ 07 июня 2012

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

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

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