O que pode causar uma conexão ODBC para relatar Nome da fonte de dados não encontrado

O que pode causar uma conexão ODBC para relatar Nome da fonte de dados não encontrado

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.

informação relacionada