Por que minha conexão ODBC de 32 bits não está aparecendo no odbcad32.exe?

4

Eu tenho um sistema Windows 7 de 64 bits que deve executar um aplicativo de 32 bits que acessa um MSSQL Server 2005 express por meio de uma conexão ODBC. Após a instalação, tudo estava funcionando bem. Agora, algumas semanas após a instalação, recebo um relatório informando que o aplicativo não está mais se conectando ao banco de dados. Eu verifiquei o C:\Windows\SysWow64\odbcad32.exe para ver se há um problema com as configurações de ODBC e a conexão ODBC não estava mais visível. Então eu verifiquei o registro para ver se ele foi completamente removido. A chave do registro é HKEY_LOCAL_MACHINE\Software\Wow6432Node\ODBC Quando abri os valores, eles não estavam acessíveis para o odbcad32 ou para o meu próprio aplicativo.

Eu estava tentando executar isso como um administrador de computador, portanto, as permissões não deveriam ser um problema e, além disso, verifiquei se elas não foram alteradas, mas ainda não consigo fazer com que funcione. Alguém tem alguma idéia sobre como obter os valores de volta para o applet odbcad32? Isso provavelmente resolverá o problema do software também.

    
por JRSofty 26.10.2012 / 07:13

4 respostas

7

Acho este artigo em meu O site do empregador , sobre o uso de ODBC de 32 bits no Windows de 64 bits, pode ajudá-lo ...

Nada do que você disse, no seu comentário abaixo ou na sua declaração de problema original, indica claramente que você está usando o Administrador ODBC de 32 bits. Observe que o programa de 32 bits e 64 bits tem o mesmo nome, odbcad32.exe . A diferença está em seu local de diretório contra-intuitivo - System32 (para componentes de 64 bits) e SysWow64 (para componentes de 32 bits).

Você pode estar enfrentando um problema antigo, mas recorrente, com pouca corrupção no Registro do Windows. A corrupção assume a forma de entradas contendo essa string de 4 caracteres -

@=""  

Essas entradas não são visíveis em nenhum lugar, exceto os arquivos de exportação do Registro, mas podem levar a inúmeros comportamentos indesejados.

NOTA: Em sua máquina Windows de 64 bits, existem naturalmente algumas complicações relacionadas ao Registro de 32 bits. Este artigo da Microsoft em KB pode ser suficiente para você passar por isso.

Sugiro que você use o Editor de Registro de 64 bits para exportar as seguintes ramificações (onde essas entradas tendem a ser encontradas) -

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

Edite esses arquivos em qualquer editor de texto ( Notepad.exe ou Wordpad.exe geralmente são bons) e exclua todas as linhas que consistem na cadeia de 4 caracteres acima. Em seguida, exclua os segmentos da árvore de Registro que você exportou e importe dos arquivos editados - restaurando assim o (s) segmento (s) de árvore, menos a corrupção.

    
por 05.11.2012 / 21:19
2

Eu tive esse mesmo problema e veja como eu o consertei para o DSN do meu sistema.

Para referência, aqui estão os dois caminhos no registro para saber se o ODBC é de 64 bits ou 32 bits em um sistema operacional Windows.

64 bits:

\HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI

32 bits:

\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI

Na pasta ODBC.INI , havia uma subpasta com o nome do DSN com todas as chaves relacionadas e outra subpasta chamada ODBC Data Sources , que tinha apenas a chave (Default): (value not set) .

Na pasta ODBC Data Sources , também deve haver uma chave com o Name da entrada DSN, Type de REG_SZ e um valor Data do nome ODBC Provider/Driver (no meu caso foi %código%). Configurei outro teste para um servidor MS SQL e o valor iSeries Access ODBC Driver foi Data .

Como descobri isso, eu deletei completamente todas as pastas DSN e a pasta SQL Server e recriou meu DSN do zero. Ele criou pastas e chaves relacionadas, e agora meus DSNs estão aparecendo e são utilizáveis.

Sem a chave com o nome do provedor no ODBC Data Sources , o DSN não seria exibido em ODBC Data Sources . Eu também poderia recriar o problema excluindo a entrada odbcad32.exe .

Espero que isso ajude alguém se a outra solução não consertá-los. Eu tentei exportar minhas chaves de registro e não vi o ODBC Data Sources conforme descrito na outra solução. Por favor, deixe-me saber se estas instruções não estão claras o suficiente e vou tentar postar screenshots. Obrigado!

    
por 24.03.2015 / 17:35
0

Assim como o @TallTed disse, o problema está relacionado à versão dupla do Administrador ODBC lançado no Windows XP (e posterior) x64 / IA64 Windows 7 .

Eu pessoalmente encontrei este ótimo artigo oficial da base de conhecimento que realmente ajudou-me a superar a questão; Seu problema específico também é solucionado em outro post do KB aqui . Eu também tentei resumir este cenário específico aqui .

BTW, o problema foi (completamente) corrigido no Windows 8 e posterior, já que a pasta Admin Tools do Painel de Controle agora contém dois ícones diferentes do Administrador ODBC: um para 32 bits e outro para 64 bits. Não é uma solução, mas pelo menos um usuário médio será capaz de resolver as coisas.

Eu não sei porque a mesma solução não foi aplicada ao Win7 também. (A MS disse algo relacionado a problemas de retro compatibilidade perto do final da segunda entrada da KB que mencionei , mas eu simplesmente não consigo entender como adicionar um ícone quebraria qualquer coisa.)

    
por 26.08.2015 / 17:17
-1

Eventualmente, encontrou uma solução para a aparente falha na instalação de um driver ODBC de 32 bits, de 4 a 5 anos atrás. A resposta 7 acima aponta para o problema "A diferença está em seu local de diretório contra-intuitivo - System32 (para componentes de 64 bits) e SysWow64 (para componentes de 32 bits)." Ao executar o odbcad32.exe para exibir a janela Origens de dados ODBC, ficou evidente que o comando Painel de controle executa a versão de 64 bits em System32 \, apesar do rótulo "Origens de dados ODBC (32 bits)". Também verifiquei o Registro para localizar os dados de chave relevantes instalados corretamente no HKLM_Software_Wow6432Node.

Minha solução é criar um atalho para C: \ Windows \ SysWOW64 \ Odbcad32.exe na minha área de trabalho. Em seguida, isso exibe a janela ODBC Data Sources para os drivers de 32 bits. Na minha instalação do SO Win7 Professional, a guia Drivers lista 25+ drivers de 32 bits.

Conclusão - A Microsoft nos deu um comando que aponta para a pasta errada, presumivelmente confusa com sua nomenclatura de pasta intuitiva.

    
por 16.04.2018 / 20:33