Partilhar via


Rastrear DLL

A DLL que realiza o traçado é um dos componentes centrais do ODBC. A DLL de rastreio é atualmente fornecida como uma DLL de exemplo no componente ODBC do SDK do Windows, e anteriormente incluía o Microsoft Data Access Components (MDAC) SDK. Assim, a entrada do registo, a interface e o código de exemplo para a DLL de trace estão disponíveis. Esta DLL pode ser substituída por uma DLL trace produzida por um utilizador ODBC ou por um fornecedor externo. A uma DLL de rastreamento personalizada deve ser atribuído um nome diferente do da DLL de exemplo de rastreamento original. As DLLs de rastreamento devem ser instaladas no diretório do sistema, caso contrário falharão ao carregar. As strings de conexão não serão passadas para a DLL de traço pelo Gestor de Controladores.

A DLL de traço traça argumentos de entrada, argumentos de saída, argumentos diferidos, códigos de retorno e SQLSTATEs. Quando o traçado está ativado, o Gestor de Drivers chama a DLL de traço em dois pontos: uma vez na entrada da função (antes da validação do argumento) e outra pouco antes da função regressar.

Quando uma aplicação chama uma função, o Gestor de Drivers 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 trace correspondente (prefixada com Trace) que é idêntica à função ODBC, com exceção do nome. Quando a função de traço é chamada, a DLL de traço captura os argumentos de entrada e devolve um código de retorno. Como a DLL de traço é chamada antes do Gestor de Drivers validar os argumentos, as chamadas de funções inválidas são rastreadas, pelo que erros de transição de estado e argumentos inválidos são registados.

Após chamar a função de rastreio na DLL de rastreio, o Gestor de Drivers chama a função ODBC no driver. Depois, chama o TraceReturn na DLL de rastreio. Esta função utiliza dois argumentos: o valor devolvido pela DLL de rastreio para a função de traço, e o código de retorno devolvido pelo driver ao Gestor de Drivers para a função ODBC (ou o valor devolvido pelo próprio Gestor de Drivers, caso tenha processado a função). A função utiliza o valor devolvido para a função de traço para manipular os valores capturados dos argumentos de entrada. Escreve o código devolvido para a função ODBC no ficheiro de registo (ou apresenta-o dinamicamente, se isso estiver ativado). Desreferencia os ponteiros dos argumentos de saída e regista os valores dos argumentos de saída.