ODBC 관리자 도구 64 비트 버전의 Windows에서 32 비트와 64 비트 사용자 Dsn 표시


증상


Microsoft Windows 운영 체제의 64 비트 버전은 다음 버전의 Microsoft 개방형 데이터베이스 연결(ODBC) 데이터 원본 관리자 도구(Odbcad32.exe)를 포함합니다.
  • Odbcad32.exe 파일의 32 비트 버전은 %systemdrive%\Windows\SysWoW64 폴더에 있습니다.
  • 64 비트 버전의 Odbcad32.exe 파일은 %systemdrive%\Windows\System32 폴더에 있습니다.
Odbcad32.exe 파일에는 다음과 같은 유형의 데이터 원본 이름 (Dsn) 표시 됩니다.
  • 시스템 Dsn
  • 사용자 Dsn

현상 1

32비트 버전의 ODBC 관리자 도구는 32비트 시스템 DSN, 32비트 사용자 DSN 및 64비트 사용자 DSN을 표시합니다. 64 비트 버전의 ODBC 관리자 도구 64 비트 시스템 Dsn 32 비트 사용자 Dsn, 64 비트 사용자 Dsn 표시합니다.

현상 2

SQLDataSources 함수는 모든 버전의 응용 프로그램의 아키텍처에 상관 없이 사용자 Dsn 반환합니다. 32 비트 응용 프로그램에서 호출 되는 SQLDataSources 함수만 시스템 Dsn을 32 비트 드라이버를 반환 하지만 32 비트 드라이버와 64 비트 드라이버가 사용자 Dsn 반환 합니다. 마찬가지로 64 비트 응용 프로그램에서 호출 되는 SQLDataSources 함수만 시스템 Dsn을 64 비트 드라이버를 반환 하지만 32 비트 드라이버와 64 비트 드라이버가 사용자 Dsn 반환. 따라서 응용 프로그램이 사용자 SQLDataSources 함수에서 반환 되는 DSN을 사용 하 여 연결을 만드는 경우 다음과 같은 오류 메시지가 나타날 수 있습니다.
찾을 수 없습니다 데이터 원본 이름 및 지정 된 기본 드라이버가 없습니다.
예를 들어, 다음 시나리오를 고려 합니다. 32 비트 드라이버 "Microsoft Access Driver (*.mdb)." 사용자 DSN을 만듭니다. 이 드라이버는 해당 하는 64 비트 버전에는 없습니다. 64 비트 응용 프로그램에서 호출 되는 SQLDataSources 함수는이 32 비트 사용자 DSN 반환 합니다. 그러나이 32 비트 사용자 DSN 통해 연결을 하는 경우이 섹션에서 설명한 오류 메시지가 나타납니다.

원인


사용자 Dsn 다음 레지스트리 하위 키 아래에 저장 됩니다.
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
이 레지스트리 하위 키에 대 한 레지스트리 리디렉션을 사용 하지 않습니다. 따라서 사용자 Dsn 32 비트 및 64 비트 버전의 ODBC 관리자 도구 모두에 표시 됩니다.

해결 방법


이전 버전과 호환성을 유지 하려면이 문제에 대 한 해결책은 찾을 수 없습니다.

해결 방법


이 문제를 해결 하려면 적절 한 버전의 ODBC 관리자 도구를 사용 합니다. 빌드하고 다음 64 비트 운영 체제에서 32 비트 응용 프로그램으로 응용 프로그램을 실행 하는 경우 windir%\SysWOW64\odbcad32.exe %의에서 ODBC 관리자 도구를 사용 하 여 ODBC 데이터 원본을 만들어야 합니다. 형식을 지정 하기 위해 dsn, 64 비트 사용자 Dsn 32 비트 사용자 Dsn "_32" 및 "_64" 추가할 수 있습니다.

자세한 내용


사용자 Dsn 및 64 비트 프로세스에서 사용 되는 시스템 Dsn을 관리 하려면 제어판에서 64 비트 ODBC 관리자 도구를 호출할 수 있습니다. 64 비트 운영 체제에서 32 비트 ODBC 관리자 도구 Windows에 Windows 64 (WOW64) 프로세스에 사용 됩니다. SysWoW64 폴더에서 32 비트 ODBC 관리자 도구를 직접 호출 해야 합니다. 사용자 Dsn 및 WOW64 프로세스에 사용 되는 시스템 Dsn을 관리 하는 32 비트 ODBC 관리자 도구를 사용할 수 있습니다.

시스템 Dsn 다음 레지스트리 하위 키에 저장 됩니다.
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
이 레지스트리 하위 키에 대 한 레지스트리 리디렉션을 활성화 됩니다. 따라서 시스템 Dsn 32 비트 드라이버 및 64 비트 드라이버가 구분 됩니다. 64 비트 ODBC 관리자 도구는 시스템 32 비트 ODBC 관리자 도구에서 만든 Dsn을 표시 하지 않습니다. 마찬가지로, 32 비트 ODBC 관리자 도구는 시스템 64 비트 ODBC 관리자 도구를 통해 만든 Dsn을 표시 하지 않습니다. 또한 64 비트 ODBC 관리자 도구는 시스템 32 비트 드라이버를 사용 하는 Dsn을 표시 하지 않습니다. 마찬가지로, 32 비트 ODBC 관리자 도구는 시스템 64 비트 드라이버를 사용 하는 Dsn을 표시 하지 않습니다.

사용자 Dsn 다음 레지스트리 하위 키에 저장 됩니다.
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
이 레지스트리 하위 키에 대 한 레지스트리 리디렉션을 사용 하지 않습니다. 따라서 두 ODBC 관리자 도구는 모든 사용자 Dsn을 표시합니다.

레지스트리 리디렉션에 대 한 자세한 내용은 다음 Microsoft Developer Network (MSDN) 웹 사이트를 방문 하십시오.