ODBCAD.exe один и тот же источник данных в system32 и syswow64
В настоящее время я хочу доказать, какие источники данных ODBC настроены на машине Windows Server 2008 R2. Когда я открою system32/odbcad32.exe
а также SysWow64/odbcad32.exe
они содержат одинаковые источники (64-битная ОС). Как проверить, какую архитектуру использует DSN? Например, в Windows 10 это отображается.
Большое спасибо!
1 ответ
Коррелированные пути реестра
- 32 бит:
HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/ODBC/ODBC.INI
- 64 бит:
HKEY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBC.INI
Ниже Microsoft KB942976 может иметь ответ на ваш вопрос.
Я никогда не замечал этого сам, так как системные уведомления ODBC для x86 и x64 в моем случае всегда находятся в system32/odbcad32.exe
для 32-битных и SysWow64/odbcad32.exe
для 64-битной.
Если вы используете только пользовательский DSN, то, похоже, это обходной путь Microsoft на Server 2008 R2. Вы могли бы изменить все на системные DSN, я полагаю.
Для Windows 8 и Server 2012 есть PowerShell Get-OdbcDsn, но он не применим к Server 2008 R2.
Инструмент администратора ODBC отображает как 32-разрядные, так и 64-разрядные пользовательские уведомления о доставке в 64-разрядной версии Windows
симптомы
64-разрядная версия операционной системы Microsoft Windows включает следующие версии инструмента администратора источника данных Microsoft Open Database Connectivity (ODBC) (
Odbcad32.exe
):
32-битная версия
Odbcad32.exe
файл находится в%systemdrive%\Windows\SysWoW64
папка.64-битная версия
Odbcad32.exe
файл находится в%systemdrive%\Windows\System32
папка.
Odbcad32.exe
В файле отображаются следующие типы имен источников данных (DSN):
- Системные уведомления о доставке
- Пользовательские DSN
Симптом 1
32-разрядная версия инструмента администратора ODBC отображает 32-разрядные системные уведомления о доставке, 32-разрядные пользовательские уведомления о доставке и 64-разрядные пользовательские уведомления о доставке. 64-разрядная версия инструмента администратора ODBC отображает 64-разрядные системные DSN, 32-разрядные пользовательские DSN и 64-разрядные пользовательские DSN.
Симптом 2
Функция SQLDataSources возвращает все версии пользовательских уведомлений о доставке, независимо от архитектуры приложения. Функция SQLDataSources, которая вызывается в 32-разрядном приложении, возвращает только системные уведомления о доставке для 32-разрядных драйверов, но возвращает пользовательские уведомления о доставке как для 32-разрядных, так и для 64-разрядных драйверов. Аналогично, функция SQLDataSources, которая вызывается в 64-разрядном приложении, возвращает только системные уведомления о доставке для 64-разрядных драйверов, но возвращает пользовательские уведомления о доставке как для 32-разрядных, так и для 64-разрядных драйверов. Поэтому, если приложение устанавливает соединение с использованием пользовательского уведомления о доставке, которое возвращается из функции SQLDataSources, вы можете получить следующее сообщение об ошибке:
Имя источника данных не найдено и драйвер по умолчанию не указан
Например, рассмотрим следующий сценарий. Вы создаете DSN пользователя для 32-разрядного драйвера "Microsoft Access Driver (*.mdb)". Этот драйвер не имеет соответствующей 64-битной версии. Функция SQLDataSources, которая вызывается в 64-разрядном приложении, возвращает это 32-разрядное пользовательское DSN. Однако если вы устанавливаете соединение через этот 32-разрядный пользовательский DSN, вы получаете сообщение об ошибке, которое упоминалось ранее в этом разделе.
причина
Пользовательские DSN хранятся в следующем подразделе реестра:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Перенаправление реестра не включено для этого подраздела реестра. Поэтому пользовательские уведомления о доставке видны как в 32-разрядной, так и в 64-разрядной версиях инструмента администратора ODBC.
разрешение
Для обеспечения обратной совместимости, решение для этой проблемы в настоящее время не доступно.
Временное решение
Чтобы обойти эту проблему, используйте соответствующую версию инструмента администратора ODBC. Если вы создаете и затем запускаете приложение как 32-разрядное приложение в 64-разрядной операционной системе, вы должны создать источник данных ODBC с помощью инструмента администратора ODBC в%windir%\SysWOW64\odbcad32.exe. Чтобы указать тип DSN, вы можете добавить "_32" для 32-разрядных пользовательских DSN и "_64" для 64-разрядных пользовательских DSN.
Дополнительная информация
Инструмент 64-разрядного ODBC-администратора может быть вызван из панели управления для управления пользовательскими уведомлениями о доставке и системными уведомлениями о доставке, которые используются 64-разрядными процессами. В 64-разрядной операционной системе 32-разрядный инструмент администратора ODBC используется для процессов Windows в Windows 64 (WOW64). Вы должны напрямую вызвать 32-битный инструмент администратора ODBC из папки SysWoW64. Вы можете использовать 32-битный инструмент администратора ODBC для управления пользовательскими DSN и системными DSN, которые используются процессами WOW64.
Системные уведомления о доставке хранятся в следующем подразделе реестра:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
Перенаправление реестра включено для этого подраздела реестра. Поэтому системные уведомления о доставке для 32-разрядных и 64-разрядных драйверов разделены. 64-разрядный инструмент администратора ODBC не отображает системные уведомления о доставке, созданные 32-разрядным инструментом администратора ODBC. Аналогично, 32-разрядный инструмент администратора ODBC не отображает системные уведомления о доставке, созданные 64-разрядным инструментом администратора ODBC. Кроме того, 64-разрядный инструмент администратора ODBC не отображает системные уведомления о доставке, в которых используются 32-разрядные драйверы. Аналогично, 32-разрядный инструмент администратора ODBC не отображает системные уведомления о доставке, в которых используются 64-разрядные драйверы.
Пользовательские DSN хранятся в следующем подразделе реестра:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Перенаправление реестра не включено для этого подраздела реестра. Поэтому оба инструмента администратора ODBC отображают все пользовательские уведомления о доставке.
Для получения дополнительных сведений о перенаправлении реестра посетите следующий веб-сайт Microsoft Developer Network (MSDN):