Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Resumo
Este artigo mostra como confirmar se um driver ODBC (Open Database Connectivity) está instalado, registrado e configurado corretamente em um computador Windows. Use-o quando um aplicativo não puder se conectar a um banco de dados, quando um driver ODBC não aparecer no Administrador da Fonte de Dados ODBC ou quando você receber o erro Data source name not found and no default driver specified (SQLSTATE IM002). As etapas de verificação abrangem as versões de 32 bits e 64 bits do Administrador de Fonte de Dados ODBC, o Nome da Fonte de Dados (DSN) e as entradas de driver no Registro do Windows, bem como a cadeia de conexão que o aplicativo passa para o Gerenciador de Drivers ODBC.
Qual cópia do Administrador de Fonte de Dados ODBC você deve abrir?
Em versões de 64 bits do Windows, há duas cópias do Administrador de Fontes de Dados ODBC, e cada cópia gerencia os drivers e os DSNs de Sistema que correspondem à sua arquitetura:
Para aplicativos de 64 bits, selecione Windows+R e digite ODBCAD32.EXE ou C:\WINDOWS\SYSTEM32\ODBCAD32.EXE.
Para aplicativos de 32 bits, selecione Windows+R e digite C:\WINDOWS\SYSWOW64\ODBCAD32.EXE.
Ambos os executáveis são nomeados odbcad32.exe, portanto, o caminho da pasta determina qual deles você abre. Sempre faça a ferramenta corresponder à arquitetura da aplicação que faz a conexão. Um aplicativo de 32 bits não pode carregar um driver ODBC de 64 bits e um aplicativo de 64 bits não pode carregar um driver ODBC de 32 bits.
Exemplos de cadeia de conexão ODBC
Os aplicativos que chamam um driver ODBC podem usar DSNs (Nomes de Fonte de Dados) ou cadeias de conexão sem DSN. Veja alguns exemplos:
driver={ODBC Driver 18 for SQL Server};server=sqlprod01;database=AdventureWorks;trusted_connection=yesdsn=userdsn1dsn=test;uid=<user name>;pwd=<password>
A primeira cadeia de conexão especifica explicitamente o nome do driver, o nome do servidor, o nome do banco de dados e se a segurança integrada (trusted_connection) deve ser usada. É uma conexão sem DSN.
A segunda e a terceira cadeias de conexão usam um DSN, que é um encapsulamento desses itens armazenados no Registro. O nome de usuário e a senha não podem ser armazenados no DSN e devem ser especificados explicitamente. Para obter mais informações sobre atributos DSN, consulte o atributo DSN cadeia de conexão.
Um DSN é um atalho para aplicativos carregarem o driver, oferecendo um nível de indireção. Usando um DSN, você pode alterar o servidor, o banco de dados e até mesmo o tipo de banco de dados ao qual o aplicativo se conecta sem alterar o aplicativo.
O nome do driver no cadeia de conexão deve corresponder ao nome de um driver registrado no computador. Os nomes do driver e do DSN não fazem distinção entre maiúsculas e minúsculas, mas a ortografia e a pontuação devem corresponder exatamente. Se nenhum driver registrado corresponder, o Gerenciador de Driver ODBC não poderá carregar o driver.
Observação
O SQL Server driver (sqlsrv32.dll) que é fornecido com Windows e o driver SQL Server Native Client (SQL Server Native Client 11.0) não é recomendado para o novo desenvolvimento.
SQL Server Native Client não é fornecido com SQL Server 2022 (16.x) e versões posteriores ou SQL Server Management Studio 19 e versões posteriores. Para novas conexões, use o Microsoft Driver ODBC para SQL Server, que você pode baixar para Windows, Linux e macOS.
Verifique se o driver e o DSN aparecem no Administrador da Fonte de Dados ODBC
Use o Administrador da Fonte de Dados ODBC para verificar a presença de drivers ODBC e DSNs. Abra a versão que corresponde à arquitetura do seu aplicativo (32 ou 64 bits) e, em seguida, verifique a guia Drivers para ver se o driver está listado. As capturas de tela a seguir mostram drivers de 64 bits e 32 bits:
Se o driver estiver listado, crie um DSN de teste na guia DSN do Sistema ou DSN do Usuário e execute um teste de conexão. Um teste bem-sucedido confirma que o driver é carregado e se o servidor está acessível. Se o driver não estiver listado, reinstale o driver e verifique as chaves do Registro, conforme descrito na próxima seção.
Informações de driver ODBC e DSN no registro
As informações de driver e DSN são armazenadas no registro:
Em computadores de 64 bits, o redirecionamento do registro separa informações de 32 e de 64 bits para drivers e DSNs do sistema. A entrada Wow6432Node do registro armazena as informações do driver de 32 bits e do DSN de sistema. DSNs de usuário não são redirecionados, portanto as ferramentas de 32 bits e 64 bits exibem todos os DSNs de usuário. As chaves relevantes são:
-
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC(Drivers de 64 bits e DSNs do sistema) -
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC(drivers de 32 bits e DSNs do sistema) -
HKEY_CURRENT_USER\Software\ODBC(DSNs de usuário para o usuário atual)
A ODBC.INI subchave contém uma lista de todos os DSNs e as subchaves de cada DSN. A subchave ODBCINST.INI lista todos os drivers.
Se houver um problema ao carregar um driver por meio do DSN, verifique a ODBC.INI subchave para descobrir qual driver o DSN está usando.
Confirme também que o caminho do driver listado em ODBCINST.INI aponta para um arquivo DLL que existe no disco. Uma entrada do Registro que faz referência a uma DLL ausente ou movida é uma causa comum de falhas de carga após uma desinstalação, uma atualização ou uma limpeza manual de arquivos. Para obter os nomes de arquivo e os locais que o Microsoft ODBC Driver for SQL Server instala, consulte os requisitos do sistema, a instalação e os arquivos de driver.
Observação
A entrada LastUser não afeta a cadeia de conexão. Ele só é usado ao testar o DSN no Administrador de Fonte de Dados ODBC.
Solucionar o erro IM002: o nome da fonte de dados não foi encontrado e nenhum driver padrão foi especificado
Valide o nome do servidor, o nome do banco de dados e se o driver está instalado. Se o driver não puder ser carregado, você receberá a seguinte mensagem de erro:
ERRO [IM002] [Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado.
Esse erro significa que o Gerenciador de Driver ODBC não pôde resolver o nome do DSN ou do driver no cadeia de conexão. Verifique os seguintes itens na ordem:
- O nome DSN no cadeia de conexão corresponde a um DSN listado no Administrador da Fonte de Dados ODBC.
- Um driver com a mesma arquitetura é instalado. Um DSN de usuário aparece em ambas as ferramentas, de 32 bits e de 64 bits, mas a conexão falha se o driver para o qual o DSN aponta não estiver instalado para a arquitetura do aplicativo. Para obter mais informações, consulte a ferramenta Administrador ODBC que exibe os DSNs de usuário de 32 bits e de 64 bits.
- O DSN do sistema foi criado na ferramenta que corresponde à arquitetura do aplicativo. Os DSNs do sistema são redirecionados ao registro, portanto, um DSN do sistema criado na ferramenta de 64 bits não está disponível para um aplicativo de 32 bits.
- O escopo DSN corresponde à conta que executa o aplicativo. Um DSN de usuário em
HKEY_CURRENT_USERnão é visível para um serviço executado sob uma conta diferente. Use um DSN do sistema para serviços e aplicativos Web. - O nome do driver em uma cadeia de conexão sem DSN corresponde a um driver listado na subchave
ODBCINST.INI.
Mesmo que o caminho do driver no DSN esteja incorreto, o gerenciador de driver ainda poderá localizá-lo na ODBCINST.INI subchave do nome do driver listado na chave do Registro de Fontes de Dados ODBC.
Se o driver for carregado, mas a conexão ainda falhar, o problema geralmente será relacionado à rede, autenticação ou criptografia, em vez de um problema de instalação. Para esses sintomas, consulte Solucionar problemas de conectividade em SQL Server.
Suporte a drivers ODBC que não são da Microsoft
Para drivers ODBC que não sejam da Microsoft, o suporte da Microsoft é limitado às seguintes ações:
- Verifique se as chaves do registro do driver estão presentes. Se não estiverem, reinstale o driver ou consulte o fornecedor.
- Verifique se os caminhos apontam para um arquivo DLL existente. Se isso não acontecer, reinstale o driver ou consulte o fabricante.
- Crie um DSN de teste e execute um teste de conexão.
- Ajude a capturar um rastreamento do Process Monitor (Procmon) que o fornecedor possa analisar.
O comportamento do driver, os defeitos do driver e a lógica de instalação do driver continuam sendo responsabilidade do fornecedor que produziu o driver.
Aviso de isenção de responsabilidade por informações de terceiros
Os produtos de terceiros que este artigo aborda são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, sobre o desempenho ou a confiabilidade desses produtos.