архитектура драйвера и архитектура приложения не соответствуют друг другу
Подключение MySQL в Excel
Приложение Excel позволяет создавать подключение к внешним источникам, в том числе базам данных. Но при необходимости подключиться к базе данных под управлением СУБД MySQL, возникает проблема. Программа просто «не умеет» этого делать, но «научить» ее легко.
Установка драйвера
Прежде необходимо установить драйвер Connector/ODBC от Oracle Corporation, скачать который можно по адресу http://dev.mysql.com/downloads/connector/odbc/ (при выборе драйвера под определенную ОС есть важный нюанс, который будет описан ниже).
Создание источника данных
Далее необходимо создать источник данных ODBC. Для этого заходим в «Панель управления», выбираем пункт «Администрирование», в нем пункт «Источники данных (ODBC)». Откроется следующее окно:
Выбираем «Добавить» и попадаем в меню выбора драйвера:
В списке имеется два возможных драйвера для MySQL различных кодировок: Unicode и ANSI. Выбирайте необходимую Вам. Если не знаете, какая Вам нужна, или это не имеет значения, то лучше устанавливать Unicode.
В параметрах подключения указываете:
Протестируйте подключение к источнику, нажав кнопку «Test». Если подключение прошло успешно, то в списке баз данных «Database» должен появиться список доступных баз. Выдираем необходимую и жмем «OK». Источник создан.
Подключение к источнику из Excel
Дальнейшая работа аналогична стандартному подключению к SQL Server.
Ошибка совпадения архитектур
После установки соответствующего драйвера на 64-разрядную ОС, создании источника и подключения к нему, даже если все сделано правильно, может быть выдана ошибка «dns архитектура драйвера и архитектура приложения не соответствуют друг другу».
Проблема заключается в следующем. Вероятно, что во время инсталляции пакета программ Microsoft Office были выбраны параметры по умолчанию, при которых устанавливается 32-рязрядная версия. Таким образом, происходит несовпадение разрядностей драйвера и приложения.
Решение – скачать и установить дополнительно драйвер для Windows 32-bit.
Если установить только 32-битный драйвер, то подключение будет возможно, но создать источник через панель управления не получиться.
Архитектура драйвера и архитектура приложения не соответствуют друг другу
Пользователь
Пользователь
Это сообщение было изменено 1 раз. Последнее изменение было в 27.01.2016 14:51:50
Пользователь
Пользователь
Зарегистрирован: 30.10.2012 19:16:48
Сообщений: 264
Оффлайн
Если я прав то Вам нужна 64 битная версия gateways.
Это сообщение было изменено 1 раз. Последнее изменение было в 27.01.2016 15:22:57
Администратор
Зарегистрирован: 06.07.2011 02:35:04
Сообщений: 147
Оффлайн
Oracle Gateway 11.2 для Oracle Database 10.2 для WinX64
Многие из тех, кому по той или иной причине приходится администрировать СУБД Oracle на платформе Windows Server, кто переехал на 64-битную платформу, были неприятно удивлены, что такая простая штука как hsodbc теперь не работает (касается версий Oracle выше 9.2).
Весьма неприятное известие для тех, кто собирает данные из множества сторонних баз, MS SQL Server, DB2 и даже, если у вас кто-то предоставляет данные в виде регулярно обновляемого Excel-файла или базы в Access или dBase, было проще всего организовать ODBC-коннект через HSODBC. Но халява кончилась.
Итак, какие у нас есть возможности решения данной проблемы:
* рядом с Oracle Database 10.1-11.2 для Windows x64 поставить 32-битную версию Oracle Database, настроить в ней hsodbc, настроить Listener на нестандартный порт;
* извращаться с инициацией передачи данных со стороны источника;
* установить Oracle Database Gateway 11.2 и организовать коннект через него.
Сейчас речь пойдет о последнем варианте как наиболее правильном. Хотя то, что этот вариант наиболее правильный, не значит, что с ним не будет проблем.
Последовательность действий следующая:
1. Качаем дистрибутив Oracle Database Gateway 11.2 отсюда: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-win64soft-094461.html
2. Устанавливаем Gateway в отдельный Oracle Home, назовем его OraGtw_home. При установке обязательно выбираем Gateway for ODBC и Net Listener.
3. Правим системную переменную PATH так, чтобы путь к OraGtw_home\bin находился после пути к bin от основной базы.
4. Настраиваем ODBC-коннектор для 64-битной системы:
1. При условии что у не стоят 64-битные драйвера, то выполняем следующие 6 пунктов, но лучше проверить, у меня все данные сразу были в нужной ветке (прим. от Ivan)
2. Настраиваем системный DSN через классическую админку ODBC.
3. Запускаем regedit и ищем ключ созданного DSN, пусть это будет MSDB, находиться он будет примерно по такому пути: HKLM\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\MSDB
4. Экспортируем этот ключ и редактируем полученный файл и убираем из пути ключа Wow6432Node чтобы путь получился примерно следующим: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\MSDB
5. Теперь необходимо этот ключ импортировать, но не делайте это по привычке двойным щелчком на reg-файле, он запихнет ключ на исходное место в Wow6432Node, делать это надо через File->Import в regedit.
6. ODBC-коннектор готов.
* Настраиваем гетерогенный сервис:
1. Идем в OraGtw_home\hs\admin и создаем файл initmsdb.ora с одной лишь строкой:
HS_FDS_CONNECT_INFO=MSDB
2. Настраиваем Listener (тут нет разницы, какой использовать, из Oracle Home от БД или из OraGtw_home, я использовал от БД) как при классической гетерогенке:
* Имя листенера должно отличаться от основного, скажем LISTENERGTW
* HOST=
* PORT=
* SID_NAME=MSDB
* В итоге у нас должен получиться такой конфиг (либо его часть при использовании уже существующего):
# Заменить выделенное на свои значения
LISTENERGTW =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = \bin\dg4odbc.exe )
)
)
* lsnrctl start LISTENERGTW
* Настраиваем подключение из Oracle Database:
1. Делаем запись в TNSNAMES.ORA в Oracle Home базы данных:
MSDB.CPCPIPE.RU =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = select * from dual@msdb_link;
* Ошибка:
ORA-28513: internal error in heterogeneous remote agent
ORA-02063: preceding line from MSDB_LINK
* Источник проблемы в неправильной настройке гетерогенного сервиса, как правило, это означает, что:
* Детали проблемы прекрасно видны в логах listenergtw.log.
* Ошибка:
ORA-28546: connection initialization failed, probable Net8 admin error
ORA-02063: preceding line from TEST_NAVI
* Источник проблемы где-то в TNSNAMES, скорее всего просто нужно пересчитать скобки в конфигурационном файле и перепроверить положение записи (HS=OK).
Это сообщение было изменено 1 раз. Последнее изменение было в 27.01.2016 17:01:58
Архитектура драйвера и архитектура приложения не соответствуют друг другу
На VM установлена база данных Postgre, там же крутиться МРВ+. ODBC драйвера установлены на всех машинах, при тестировании подключение к базе имеется. При разработке проекта с рабочего компьютера (192.168.10.151 x86) запросы в базу(192.168.10.251 x64) проходят корректно, т.е. появляются в нужных полях нужные записи. После того как переношу готовый проект на VM, в базу ничего не записывается. ODBC настроен одинаково (порт, логин, пароль, имя БД, адрес), разница только в разрядности систем и драйвера. Как решить эту проблему, проект должен писать во внешнюю БД, это его основная функция на данном этапе. От внутренних архивов отказались, т.к. обнаружены сложности с выборкой из СПАД и передачу в 1С.
И еще чуть не забыл, VM работает в тестовом режиме т.е. виндовс не активирован.
И еще, для тех кто будет использовать постгрис синтаксис в этой БД не совпадает с синтаксисом мастера запросов, ну или как то так. Пишите ручками. Сообщения / Posts 31 | Из / From: Россия | IP / IP: IP адрес / IP address |
АдАстра. Техподдержка Administrator Участник № / Member № 4 rtcx b40-a08 ENTER SQLAllocHandle rtcx b40-a08 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS) rtcx b40-a08 ENTER SQLAllocHandle rtcx b40-a08 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS) DIAG [IM014] [Microsoft][Диспетчер драйверов ODBC] В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу. (0) rtcx b40-a08 ENTER SQLGetDiagRecW rtcx b40-a08 ENTER SQLGetDiagRecW rtcx b40-a08 EXIT SQLGetDiagRecW with return code 0 (SQL_SUCCESS) rtcx b40-a08 ENTER SQLGetDiagRecW rtcx b40-a08 EXIT SQLGetDiagRecW with return code 100 (SQL_NO_DATA_FOUND) rtcx b40-a08 ENTER SQLFreeHandle rtcx b40-a08 EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS) rtcx b40-a08 ENTER SQLFreeHandle rtcx b40-a08 EXIT SQLFreeHandle with return code 0 (SQL_SUCCESS) rtcx b40-220 ENTER SQLAllocHandle rtcx b40-220 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS) rtcx b40-220 ENTER SQLAllocHandle rtcx b40-220 EXIT SQLAllocHandle with return code 0 (SQL_SUCCESS) DIAG [IM014] [Microsoft][Диспетчер драйверов ODBC] В указанном DSN архитектура драйвера и архитектура приложения не соответствуют друг другу. (0) Сообщения / Posts 31 | Из / From: Россия | IP / IP: IP адрес / IP address | |
Shahmatist Forum Member / Участник форума Участник № / Member № 5388 P.S. Век живи, век учись. Истина. Сообщения / Posts 31 | Из / From: Россия | IP / IP: IP адрес / IP address | |
Ошибка «в указанном dsn архитектура драйвера и архитектура приложения»
Архитектура «сервер-клиент», «точка-многоточие»
использование ServerSocket1 и ClientSocket1 при структуре «точка-точка» не вызывает затруднений.
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу
Добрый день. При запуске программы выскакивает вот такая вот ошибка. В чем может быть проблема и.
Ошибка соединения с БД «архитектура драйвера и приложения не соответствуют»
Работаю в RAD studio и столкнулся с проблемой, когда нужно установить связь приложения и БД.
Архитектура приложения «Кукольный театр» (ООП)
Всем доброго времени суток. Не могли бы вы мне помочь исправить мои ошибкиБпосмотреть код и.
Литература по теме: «Многоуровненвая архитектура приложения»
Здравствуйте! Посоветуйте какой-нибудь информационный источник(книги, сайты, видеоуроки), где.
Стоит ли прочитать начинающему программисту «Архитектура микропроцессора 80286» Морс,Алберт?
Не будет ли он слишком сложноват для начинающего?Или посоветуете что нибудь другое про процессоры.
Odbc, error IM002
Но есть удаленная MySQL. Решил пробовать через ODBC, что бы подключаться к обеим базам, меняя только строку подключения.
Во время MyConnection.Open(); эта ошибка и вылезает.
В источниках данных создал некий источник с именем Name, вбил все данные для удаленного MySQL и нажав на кнопочку Test получил уведомление, что соединение успешно (да и базы данных из раскрывающегося меню подтягиваются сами).
При этом, такой код вполне работает:
Тут я подключаюсь к своей MSSQL базе. Правда почему-то ругается на пару логин/пароль (не знаю почему, пока ищу ответ), но по крайней мере он видит базу данных.
Пойду пока читать, что такое DSN и как его можно использовать в C#.
Добавлено через 3 часа 35 минут
Разобрался. Для таких же как я еще раз по полочкам:
Хотим создать подключение к MSSQL и MySQL через ODBC.
//MSSQL
Если строчка MyConnection.Open(); не выдала ошибку, то все в порядке, мы имеем доступ к базе данных.
DRIVER
http://dev.mysql.com/downloads/connector/odbc/
По ссылке выше можно скачать драйвера для операционных систем 32-bit и 64-bit. Не для нашей операционной системы, а для системы, где находится сервер к которому мы подключаемся.
Качаем, устанавливаем. Шаги по установке и эксплуатации тут:
http://dev.mysql.com/doc/conne. index.html
Послу установки по-умолчанию ничего дополнительно настраивать не нужно.
У меня например была ошибка IM0002 (источник Данных не найден и не указан драйвер по умолчанию).
По странной причине драйвера у меня слетели, но отображались созданные по ним «Пользовательские DSN» (все там же в odbcad32.exe).
Попытки «Настроить» или «Удалить» эти DSN система блокировала ссылаясь на то, что «такой драйвер не доступен». Решил это тем, что поставил поверх старых, новые драйвера и добавил «Пользовательские DSN» с тем же именем, заменив старые.
P.S. написал так, как сумел понять, так что новичкам не принимать это как однозначную истину. Кто в теме, поправьте, если что не так.
Помощь в написании контрольных, курсовых и дипломных работ здесь.