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.
O Gerenciador de Driver é uma biblioteca que gerencia a comunicação entre aplicativos e drivers. Por exemplo, nas plataformas Microsoft Windows, o Gerenciador de Driver é uma DLL (biblioteca de vínculo dinâmico) que é escrita pela Microsoft e pode ser redistribuída por usuários do SDK do MDAC 2.8 SP1 redistribuível.
O Gerenciador de Driver existe principalmente como uma conveniência para os desenvolvedores de aplicativos e resolve uma série de problemas comuns a todos os aplicativos. Isso inclui determinar qual driver carregar com base em um nome de fonte de dados, carregar e descarregar drivers e chamar funções em drivers.
Para ver por que este último é um problema, considere o que aconteceria se o aplicativo chamasse funções diretamente no driver. A menos que o aplicativo estivesse vinculado diretamente a um driver específico, ele teria que criar uma tabela de ponteiros para as funções nesse driver e chamar essas funções por ponteiro. Usar o mesmo código para mais de um driver de cada vez adicionaria mais um nível de complexidade. O aplicativo primeiro teria que definir um ponteiro de função para apontar para a função correta no driver correto e, em seguida, chamar a função por meio desse ponteiro.
O Gerenciador de Driver resolve esse problema fornecendo um único local para chamar cada função. O aplicativo está vinculado ao Gerenciador de Driver e chama funções ODBC no Gerenciador de Driver, não no driver. O aplicativo identifica o driver de destino e a fonte de dados com um identificador de conexão. Quando ele carrega um driver, o Gerenciador de Driver cria uma tabela de ponteiros para as funções nesse driver. Ele usa o identificador de conexão passado pelo aplicativo para localizar o endereço da função no driver de destino e chama essa função por endereço.
Na maioria das vezes, o Gerenciador de Driver passa apenas chamadas de função do aplicativo para o driver correto. No entanto, ele também implementa algumas funções (SQLDataSources, SQLDrivers e SQLGetFunctions) e executa a verificação básica de erros. Por exemplo, o Gerenciador de Driver verifica se os handles não são ponteiros nulos, se as funções são chamadas na ordem correta e se determinados argumentos de função são válidos. Para obter uma descrição completa dos erros verificados pelo Gerenciador de Driver, consulte a seção de referência para cada função e Apêndice B: Tabelas de Transição de Estado ODBC.
A última função importante do Gerenciador de Controladores é carregar e descarregar controladores. O aplicativo carrega e descarrega apenas o Gerenciador de Driver. Quando ele deseja usar um driver específico, ele chama uma função de conexão (SQLConnect, SQLDriverConnect ou SQLBrowseConnect) no Gerenciador de Driver e especifica o nome de uma fonte de dados ou driver específico, como "Contabilidade" ou "SQL Server". Usando esse nome, o Gerenciador de Driver pesquisa as informações da fonte de dados para o nome do arquivo do driver, como Sqlsrvr.dll. Em seguida, carrega o driver (supondo que ele ainda não esteja carregado), armazena o endereço de cada função no driver e chama a função de conexão no driver, que então se inicializa e se conecta à fonte de dados.
Quando o aplicativo terminar de usar o driver, ele chamará SQLDisconnect no Gerenciador de Driver. O Gerenciador de Driver chama essa função no driver, que se desconecta da fonte de dados. No entanto, o Gerenciador de Driver mantém o driver na memória caso o aplicativo se reconecte a ele. Ele descarrega o driver somente quando o aplicativo libera a conexão usada pelo driver ou usa a conexão para um driver diferente, e nenhuma outra conexão usa o driver. Para obter uma descrição completa da função do Gerenciador de Driver no carregamento e descarregamento de drivers, consulte a função do Gerenciador de Driver no Processo de Conexão.