Ferramenta Administrador de ODBC exibe a 32 bits e os DSNs do usuário de 64 bits em uma versão de 64 bits do Windows

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 942976
Sintomas
Uma versão de 64 bits do sistema operacional Microsoft Windows inclui as seguintes versões da ferramenta Administrador de fonte de dados do Microsoft Open Database Connectivity (ODBC) (Odbcad32.exe):
  • A versão de 32 bits do arquivo Odbcad32.exe dll está localizada na pasta %systemdrive%\Windows\SysWoW64.
  • A versão de 64 bits do arquivo Odbcad32.exe dll está localizada na pasta %systemdrive%\Windows\System32.
O arquivo de Odbcad32.exe exibe os seguintes tipos de nomes de fonte de dados (DSNs):
  • DSNs do sistema
  • DSNs do usuário

Sintoma 1

A versão de 32 bits da ferramenta Administrador de ODBC exibe DSNs do sistema de 32 bits, DSNs de usuário de 32 bits e 64 bits DSNs do usuário. A versão de 64 bits da ferramenta Administrador de ODBC exibe DSNs de sistema de 64 bits, DSNs de usuário de 32 bits e 64 bits DSNs do usuário.

Sintoma 2

A função SQLDataSources retorna todas as versões de DSNs do usuário, independentemente da arquitetura do aplicativo. A função SQLDataSources que é chamada em um aplicativo de 32 bits retorna somente DSNs do sistema para obter os drivers de 32 bits, mas retorna DSNs de usuário para drivers de 32 bits e 64 bits. Da mesma forma, a função SQLDataSources que é chamada em um aplicativo de 64 bits retorna somente DSNs do sistema para obter os drivers de 64 bits, mas retorna DSNs de usuário para drivers de 32 bits e 64 bits. Portanto, se o aplicativo faz uma conexão usando um DSN que é retornado da função SQLDataSources de usuário, você receberá a seguinte mensagem de erro:
Nome de fonte de dados não encontrado e nenhum driver padrão especificado
Por exemplo, considere o cenário a seguir. Criar um DSN de usuário para o driver de 32 bits "Driver do Microsoft Access (*. mdb)". Este driver não tem uma versão de 64 bits correspondente. A função SQLDataSources que é chamada em um aplicativo de 64 bits retorna esse DSN de usuário de 32 bits. No entanto, se você estabelecer uma conexão a esse DSN de usuário de 32 bits, você recebe a mensagem de erro que é mencionada anteriormente nesta seção.
Causa
Os DSNs de usuário são armazenados na seguinte subchave do registro:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Redirecionamento do registro não está habilitado para essa subchave do registro. Portanto, os DSNs de usuário são visíveis em ambas as versões de 32 bits e 64 bits da ferramenta Administrador de ODBC.
Resolução
Para manter a compatibilidade com versões anteriores, nenhuma resolução para este problema está disponível no momento.
Como Contornar
Para contornar esse problema, use a versão apropriada da ferramenta Administrador de ODBC. Se você compilar e executa um aplicativo como um aplicativo de 32 bits em um sistema operacional de 64 bits, você deve criar a fonte de dados ODBC usando a ferramenta Administrador de ODBC no % windir%\SysWOW64\odbcad32.exe. Para indicar o tipo de fonte de dados, você pode adicionar "_32" para o usuário de 32 bits DSNs e "_64" para o usuário de 64 bits DSNs.
Mais Informações
A ferramenta de administrador de ODBC de 64 bits pode ser chamada de painel de controle para gerenciar DSNs de usuário e DSNs do sistema usados por processos de 64 bits. Em um sistema operacional de 64 bits, a ferramenta Administrador de ODBC de 32 bits é usada para Windows no Windows 64 (WOW64) processos. Você deve chamar diretamente a ferramenta Administrador de ODBC de 32 bits da pasta SysWoW64. Você pode usar a ferramenta Administrador de ODBC de 32 bits para gerenciar DSNs de usuário e DSNs do sistema usados por processos WOW64.

DSNs do sistema são armazenadas na seguinte subchave do registro:
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI
Redirecionamento do registro está habilitado para essa subchave do registro. Portanto, os DSNs do sistema para drivers de 32 bits e 64 bits são separados. A ferramenta de administrador de ODBC de 64 bits não exibe DSNs são criados pela ferramenta de administrador de ODBC de 32 bits do sistema. Da mesma forma, a ferramenta Administrador de ODBC de 32 bits não exibe DSNs são criados pela ferramenta de administrador de ODBC de 64 bits do sistema. Além disso, a ferramenta Administrador de ODBC de 64 bits não exibe DSNs que usam drivers de 32 bits do sistema. Da mesma forma, a ferramenta Administrador de ODBC de 32 bits não exibe DSNs que usam drivers de 64 bits do sistema.

DSNs de usuário são armazenadas na seguinte subchave do registro:
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
Redirecionamento do registro não está habilitado para essa subchave do registro. Portanto, ambas as ferramentas de administrador ODBC exibem todas as DSNs do usuário.

Para obter mais informações sobre redirecionamento do registro, visite o seguinte site da Microsoft Developer Network (MSDN):

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 942976 - Última Revisão: 06/11/2016 23:40:00 - Revisão: 6.0

Microsoft Open Database Connectivity 4.21

  • kbexpertiseadvanced kbtshoot kbprb kbmt KB942976 KbMtpt
Comentários