다음을 통해 공유


추적 DLL

추적을 수행하는 DLL은 ODBC 핵심 구성 요소 중 하나입니다. 추적 DLL은 현재 Windows SDK의 ODBC 구성 요소에서 샘플 DLL로 제공되며 이전에는 MDAC(Microsoft Data Access Components) SDK를 포함했습니다. 따라서 추적 DLL에 대한 레지스트리 항목, 인터페이스 및 샘플 코드를 사용할 수 있습니다. 이 DLL은 ODBC 사용자 또는 타사 공급업체에서 생성한 추적 DLL로 대체될 수 있습니다. 사용자 지정 추적 DLL은 원래 샘플 추적 DLL과 다른 이름을 지정해야 합니다. 추적 DLL은 시스템 디렉터리에 설치해야 합니다. 그렇지 않으면 로드되지 않습니다. 연결 문자열 드라이버 관리자에 의해 추적 DLL에 전달되지 않습니다.

추적 DLL은 입력 인수, 출력 인수, 지연된 인수, 반환 코드 및 SQLSTATE를 추적합니다. 추적을 사용하도록 설정하면 드라이버 관리자는 함수 입력 시(인수 유효성 검사 전) 및 함수가 반환되기 바로 전에 두 지점에서 추적 DLL을 호출합니다.

애플리케이션이 함수를 호출할 때 드라이버 관리자는 드라이버에서 함수를 호출하거나 호출 자체를 처리하기 전에 추적 DLL에서 추적 함수를 호출합니다. 각 ODBC 함수에는 이름을 제외하고 ODBC 함수와 동일한 해당 추적 함수(Trace 접두사)가 있습니다. 추적 함수가 호출되면 추적 DLL은 입력 인수를 캡처하고 반환 코드를 반환합니다. 드라이버 관리자가 인수의 유효성을 검사하기 전에 추적 DLL이 호출되므로 잘못된 함수 호출이 추적되므로 상태 전환 오류 및 잘못된 인수가 기록됩니다.

추적 DLL에서 추적 함수를 호출한 후 드라이버 관리자는 드라이버에서 ODBC 함수를 호출합니다. 그런 다음 추적 DLL에서 TraceReturn을 호출합니다. 이 함수는 추적 함수에 대한 추적 DLL에서 반환되는 값과 드라이버가 ODBC 함수의 드라이버 관리자로 반환한 반환 코드(또는 함수를 처리한 경우 드라이버 관리자 자체에서 반환한 값)의 두 인수를 사용합니다. 이 함수는 추적 함수에 대해 반환된 값을 사용하여 캡처된 입력 인수 값을 조작합니다. ODBC 함수에 대해 반환된 코드를 로그 파일에 씁니다(또는 활성화된 경우 동적으로 표시). 출력 인수 포인터를 역참조하고 출력 인수 값을 기록합니다.