Почему мое 32-битное соединение ODBC не отображается в odbcad32.exe?

у меня есть 64-разрядная система Windows 7, которая должна запускать 32-разрядное приложение, которое обращается к MSSQL Server 2005 express через соединение ODBC. После установки все работало нормально. Теперь через несколько недель после установки я получаю отчет о том, что приложение больше не подключается к базе данных. Я проверил C:WindowsSysWow64odbcad32.exe, чтобы увидеть, если есть проблема с настройками ODBC, и соединение ODBC больше не был виден. Поэтому я проверил реестр, чтобы убедиться, что он был полностью удален. Тот раздел реестра HKEY_LOCAL_MACHINESoftwareWow6432NodeODBC когда я открыл, что значения были там, они просто не были доступны для odbcad32 или моего собственного приложения.

Я пытался запустить это как администратор компьютера, поэтому разрешения не должны быть проблемой, и, кроме того, я проверил, чтобы убедиться, что они не были изменены, но я все еще не могу заставить его работать. У кого-нибудь есть идеи о том, как вернуть значения в апплет odbcad32? Что, скорее всего, решить проблему программного обеспечения, а также.

20
задан JRSofty
15.04.2023 14:13 Количество просмотров материала 3516
Распечатать страницу

4 ответа

Я думаю в этой статье on работодатель сайт, об использовании 32-битного ODBC на 64-битных Windows, может помочь вам...

ничего из того, что вы сказали, в вашем комментарии ниже, ни в вашем первоначальном заявлении о проблеме, явно указывает на то, что вы используете 32-разрядного администратора ODBC. Обратите внимание, что 32-разрядная и 64-разрядная программы называются одинаково,odbcad32.exe. Разница в их нелогично каталог -- System32 (для 64-битные компоненты) и SysWow64 (для 32-разрядных компонентов).

вы мая ударять старую, но повторяющуюся проблему с незначительным повреждением в реестре Windows. Повреждение принимает форму записей, содержащих эту 4-символьную строку --

@=""  

эти записи не видны нигде, кроме файлов экспорта реестра , но они могут привести к ряду нежелательных поведений.

Примечание: на 64-бит Windows машина, есть, естественно, некоторые осложнения, связанные с 32-битным реестром. эта статья базы знаний Майкрософт может быть достаточно, чтобы пройти через это.

Я предлагаю вам использовать 64-разрядный редактор реестра для экспорта следующих ветвей (где эти записи, как правило, можно найти)--

HKEY_LOCAL_MACHINE\Software\ODBC
HKEY_LOCAL_MACHINE\Software\WOW6432Node\ODBC
HKEY_CURRENT_USER\Software\ODBC
HKEY_CURRENT_USER\Software\WOW6432Node\ODBC

редактировать эти файлы в любом текстовом редакторе (Notepad.exe или Wordpad.exe, как правило, хорошо), и удалите все строки, которые состоят из этой 4-символьной строки выше. Затем удалите экспортированные сегменты дерева реестра и импортируйте их из отредактированных файлов, тем самым восстановив сегменты дерева без повреждения.

7
отвечен TallTed 2023-04-16 22:01

у меня была та же проблема, и вот как я это исправил для моей системы DSN.

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

64-разрядная:

\РАЗДЕЛ HKEY_LOCAL_MACHINE\ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\ДРАЙВЕРА ODBC\ODBC ДЛЯ.INI

32-битные:

\раздел HKEY_LOCAL_MACHINE\программное обеспечение\WOW6432Node\драйвера ODBC\ODBC для.INI

на ODBC.INI папка была подпапка с именем DSN со всеми связанными ключами и другая подпапка с именем ODBC Data Sources только (Default): (value not set) ключ.

на ODBC Data Sources папку, там должен быть ключ с Name записи DSN,Type на REG_SZ и Data стоимостью ODBC Provider/Driver имя (в моем случае это был iSeries Access ODBC Driver). Я установил еще один тест на MS SQL server и Data значение SQL Server.

как я обнаружил это, я полностью удалил все папки DSN а то ODBC Data Sources папка и воссоздал мой DSN с нуля. Он создал как папки, так и связанные ключи, и теперь мои DSN отображаются и могут использоваться.

без ключа с именем провайдера в ODBC Data Sources, DSN не будет отображаться в odbcad32.exe. Я мог бы также воссоздать проблему, удалив ODBC Data Sources запись.

надеюсь, это поможет кому-то, если другое решение не исправлять их. Я попытался экспортировать мои ключи реестра и не видел @="" как описано в иное решение. Пожалуйста, дайте мне знать, если эти инструкции не достаточно ясны, и я постараюсь опубликовать скриншоты. Спасибо!

2
отвечен Geoff Gunter 2023-04-17 00:18

Так же, как сказал @TallTed, проблема связана с двойной версией администратор ODBC выпущено в x64 / IA64 Windows 7 Windows XP (и более поздние версии).

Я лично нашел это великое официальная статья КБ это действительно помогло мне преодолеть проблему; ваша конкретная проблема также рассматривается в другой КБ пост здесь. Я также попытался обобщить этот конкретный сценарий здесь.

кстати, проблема была (довольно) исправлена в Windows 8 и более поздних версий, так как папка панели управления "инструменты администратора" теперь содержит два разных значка администратора ODBC: один для 32-разрядной, один для 64-разрядной версии. Не решение, но, по крайней мере, рядовой пользователь сможет разобраться.

Я не знаю, почему тот же обходной путь не был применен к Win7, а также. (MS сказал что-то связанное с проблемами ретро-совместимости в конце вторая запись КБ я упомянул, но я просто не могу поймите, как добавление значка сломает что-либо.)

0
отвечен Darkseal 2023-04-17 02:35

В конце концов нашел разрешение очевидного сбоя в установке 32-битного драйвера ODBC около 4-5 лет назад. Ответ 7 выше указывает на проблему " разница заключается в их нелогичном расположении каталога -- System32 (для 64-разрядных компонентов) и SysWow64 (для 32-разрядных компонентов)."О запуске odbcad32.exe для отображения окна источников данных ODBC стало очевидно, что команда панели управления запускает 64-разрядную версию в System32\, несмотря на метку " источники данных ODBC (32 бит)". Я тоже проверил реестр, чтобы найти соответствующие ключевые данные по HKLM_Software_Wow6432Node.

мое решение-создать ярлык C:\Windows\SysWOW64\Odbcad32.exe на моем рабочем столе. Затем откроется окно источники данных ODBC для 32-разрядных драйверов. На моей установке Win7 Professional OS вкладка драйверы содержит 25 + 32-разрядные драйверы.

вывод - Microsoft дал нам команду, которая указывает на ту папку, вероятно, их смущает алогичным папку называющий.

-1
отвечен Paul 2023-04-17 04:52

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

32-bit
64-bit
odbc
windows-7
windows-registry
Вверх