Partilhar via


DLL de rastreamento

A DLL que executa o rastreamento é um dos principais componentes do ODBC. No momento, a DLL de rastreamento é fornecida como uma DLL de exemplo no componente ODBC do SDK do Windows e era incluída anteriormente no SDK do Microsoft Data Access Components (MDAC). Portanto, a entrada do Registro, a interface e o código de exemplo da DLL de rastreamento estão disponíveis. Essa DLL pode ser substituída por uma DLL de rastreamento produzida por um usuário do ODBC ou por um fornecedor de terceiros. Uma DLL de rastreamento personalizada 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 na entrada da função (antes da validação do argumento) e novamente logo 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 Trace) que é idêntica à função ODBC, com exceção do nome. Quando a função trace é 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 em log.

Após chamar a função de rastreamento na DLL de rastreamento, o Gerenciador de Driver chama a função ODBC no driver. Em seguida, chama TraceReturn na DLL de rastreamento. Esta 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 ao 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 os valores dos argumentos de entrada capturados. Grava o código retornado pela função ODBC no arquivo de log (ou o exibe dinamicamente, caso esteja habilitado). Desreferencia os ponteiros dos argumentos de saída e registra os valores dos argumentos de saída.