Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die DLL, die die Ablaufverfolgung durchführt, ist eine der ODBC-Kernkomponenten. Die Ablaufverfolgungs-DLL wird derzeit als Beispiel-DLL in der ODBC-Komponente des Windows SDK bereitgestellt und war früher das Microsoft Data Access Components (MDAC)-SDK enthalten. Daher sind der Registrierungseintrag, die Schnittstelle und der Beispielcode für die Ablaufverfolgungs-DLL verfügbar. Diese DLL kann durch eine Ablaufverfolgungs-DLL ersetzt werden, die entweder von einem ODBC-Benutzer oder einem Drittanbieter erstellt wird. Eine benutzerdefinierte Ablaufverfolgungs-DLL sollte einen anderen Namen als die ursprüngliche Beispielablaufverfolgungs-DLL erhalten. Ablaufverfolgungs-DLLs müssen im Systemverzeichnis installiert sein, oder sie können nicht geladen werden. Die Verbindungszeichenfolge s werden vom Treiber-Manager nicht an die Ablaufverfolgungs-DLL übergeben.
Die Ablaufverfolgungs-DLL verfolgt Eingabeargumente, Ausgabeargumente, verzögerte Argumente, Rückgabecodes und SQLSTATEs. Wenn die Ablaufverfolgung aktiviert ist, ruft der Treiber-Manager die Ablaufverfolgungs-DLL an zwei Punkten auf: einmal nach Funktionseingabe (vor Argumentüberprüfung) und erneut, bevor die Funktion zurückgegeben wird.
Wenn eine Anwendung eine Funktion aufruft, ruft der Treiber-Manager eine Ablaufverfolgungsfunktion in der Ablaufverfolgungs-DLL auf, bevor die Funktion im Treiber aufgerufen oder der Aufruf selbst verarbeitet wird. Jede ODBC-Funktion verfügt über eine entsprechende Ablaufverfolgungsfunktion (mit dem Präfix Trace), die mit der ODBC-Funktion mit Ausnahme des Namens identisch ist. Wenn die Ablaufverfolgungsfunktion aufgerufen wird, erfasst die Ablaufverfolgungs-DLL die Eingabeargumente und gibt einen Rückgabecode zurück. Da die Ablaufverfolgungs-DLL aufgerufen wird, bevor der Treiber-Manager Argumente überprüft, werden ungültige Funktionsaufrufe nachverfolgt, sodass Zustandsübergangsfehler und ungültige Argumente protokolliert werden.
Nach dem Aufrufen der Ablaufverfolgungsfunktion in der Ablaufverfolgungs-DLL ruft der Treiber-Manager die ODBC-Funktion im Treiber auf. Anschließend wird TraceReturn in der Ablaufverfolgungs-DLL aufgerufen. Diese Funktion verwendet zwei Argumente: den Wert, der von der Ablaufverfolgungs-DLL für die Ablaufverfolgungsfunktion zurückgegeben wird, und den vom Treiber an den Treiber-Manager für die ODBC-Funktion zurückgegebenen Wert (oder den Wert, der vom Treiber-Manager selbst zurückgegeben wird, wenn sie die Funktion verarbeitet hat). Die Funktion verwendet den für die Ablaufverfolgungsfunktion zurückgegebenen Wert, um erfasste Eingabeargumentwerte zu bearbeiten. Er schreibt den für die ODBC-Funktion zurückgegebenen Code in die Protokolldatei (oder zeigt ihn dynamisch an, wenn dies aktiviert ist). Sie leitet die Ausgabeargumentzeiger ab und protokolliert die Ausgabeargumentwerte.