![O que pode causar uma conexão ODBC para relatar Nome da fonte de dados não encontrado](https://rvso.com/image/568259/O%20que%20pode%20causar%20uma%20conex%C3%A3o%20ODBC%20para%20relatar%20Nome%20da%20fonte%20de%20dados%20n%C3%A3o%20encontrado.png)
Estou trabalhando com uma pequena empresa que usa um banco de dados baseado em Access para gerenciamento de ordens de serviço. O sistema existe há anos e eles têm de 6 a 7 PCs usando software personalizado de um ISV para acessar o banco de dados. O banco de dados é acessado por meio de uma conexão de unidade mapeada (Z:).
Vários meses atrás, eles começaram a receber este erro de forma intermitente:
Nome da fonte de dados não encontrado e nenhum driver padrão especificado
Isso faz com que o ISV precise se conectar ao banco de dados e executar um reparo para recuperar o banco de dados. O erro que eles veem é um pouco mais específico e sugere que o formato do arquivo está corrompido. O técnico de suporte sugere que o problema é causado por uma falha na transação na rede. Para esse fim, tentamos várias coisas
- moveu o banco de dados para um host diferente caso o PC "servidor" original tivesse problemas
- substituiu o switch de rede
- começou a retirar os clientes da rede um por um na tentativa de isolar o filho problemático sem resultados consistentes
Até agora, sem sorte.
Minha(s) pergunta(s) - Um dos PCs pode estar fechando o mapeamento da unidade e corrompendo o banco de dados aberto - Há algo novo no Windows 7 que possa estar atrapalhando - Você pode recomendar uma abordagem melhor para isolar a causa.
Responder1
Este é quase certamente um problema de DSN de 32 bits versus 64 bits. Para usar um DSN de 32 bits em um ambiente de 64 bits, vá paraC:\Windows\SysWoW64\odbcad32.exe
Nosso aplicativo interno tem uma limitação muito semelhante. Para evitar o problema no futuro, você pode querer instalar a versão mais recenteCliente Nativo SQL Servere implantar o DSN de 32 e 64 bits em todas as máquinas por meio da Política de Grupo.
Responder2
Se você mapear a unidade usando o comando SUBST.exe em vez de "NET USE", diferentemente de "NET USE", a conexão sempre tentará novamente quando a unidade mapeada for perdida. Lembre-se de que fazer isso dessa maneira dificulta o desmapeamento da unidade para quem não conhece o comando SUBST.exe. Quando uma unidade é mapeada dessa maneira, você não pode simplesmente desconectá-la do Windows Explodir... isso não funcionará.
Pessoalmente, concordo que é o problema de 64 bits.
Tenha em mente que os painéis de controle ODBC DSN de 32 e 64 bits, embora você espere que funcionem de uma determinada maneira, em alguns casos eles fazem o oposto. Por exemplo: quando estiver em um sistema de 64 bits e tentando adicionar um "DSN do usuário" de 64 bits, você poderá notar que sua conexão falha, mas usando um "DSN do sistema" ela funciona. Isso ocorre porque o painel ODBC está, na verdade, gerando um "DSN de 32 bits" na guia "Usuário" do painel de controle ODBC de 64 bits, enquanto gera o DSN de 64 bits esperado na guia "Sistema". Contanto que você esteja ciente da possibilidade de os painéis de controle não funcionarem conforme o esperado, não acho que nenhuma configuração irá confundi-lo.