Compartilhar via


DLL de rastreamento

A DLL que executa o rastreamento é um dos componentes principais do ODBC. Atualmente, a DLL de rastreamento é fornecida como uma DLL de exemplo no componente ODBC do SDK do Windows e foi incluída anteriormente no SDK do MDAC (Microsoft Data Access Components). Portanto, a entrada do Registro, a interface e o código de exemplo para a DLL de rastreamento estão disponíveis. Essa DLL pode ser substituída por uma DLL de rastreamento produzida por um usuário ODBC ou por um fornecedor terceirizado. Uma DLL de rastreamento personalizado deve receber um nome diferente da DLL de rastreamento de exemplo original. As DLLs de rastreamento devem ser instaladas no diretório do sistema ou não serão carregadas. As cadeias de conexão não serão passadas para a DLL de rastreamento pelo Gerenciador de Driver.

A DLL de rastreamento rastreia argumentos de entrada, argumentos de saída, argumentos adiados, códigos de retorno e SQLSTATEs. Quando o rastreamento está habilitado, o Gerenciador de Driver chama a DLL de rastreamento em dois pontos: uma vez após a entrada da função (antes da validação do argumento) e novamente pouco antes do retorno da função.

Quando um aplicativo chama uma função, o Gerenciador de Driver chama uma função de rastreamento na DLL de rastreamento antes de chamar a função no driver ou processar a chamada em si. Cada função ODBC tem uma função de rastreamento correspondente (prefixada com Rastreamento) que é idêntica à função ODBC, com exceção do nome. Quando a função de rastreamento é chamada, a DLL de rastreamento captura os argumentos de entrada e retorna um código de retorno. Como a DLL de rastreamento é chamada antes que o Gerenciador de Driver valide argumentos, chamadas de função inválidas são rastreadas, portanto, erros de transição de estado e argumentos inválidos são registrados.

Depois de chamar a função de rastreamento na DLL de rastreamento, o Gerenciador de Driver chama a função ODBC no driver. Em seguida, ele chama TraceReturn na DLL de rastreamento. Essa função usa dois argumentos: o valor retornado pela DLL de rastreamento para a função de rastreamento e o código de retorno retornado pelo driver para o Gerenciador de Driver para a função ODBC (ou o valor retornado pelo próprio Gerenciador de Driver se ele processou a função). A função usa o valor retornado para a função de rastreamento para manipular valores de argumento de entrada capturados. Ele grava o código retornado para a função ODBC no arquivo de log (ou o exibe dinamicamente, se isso estiver habilitado). Ele desreferencia os ponteiros do argumento de saída e registra os valores do argumento de saída.