跟踪 DLL
执行跟踪的 DLL 是 ODBC 核心组件之一。 跟踪 DLL 目前在 Windows SDK 的 ODBC 组件中作为示例 DLL 提供,以前包含 Microsoft 数据访问组件 (MDAC) SDK。 因此,可以使用跟踪 DLL 的注册表项、接口和示例代码。 此 DLL 可以替换为 ODBC 用户或第三方供应商生成的跟踪 DLL。 应为自定义跟踪 DLL 提供与原始示例跟踪 DLL 不同的名称。 跟踪 DLL 必须安装在系统目录中,否则将无法加载。 驱动程序管理器不会将连接字符串传递给跟踪 DLL。
跟踪 DLL 跟踪输入自变量、输出自变量、延迟自变量、返回代码和 SQLSTATE。 启用跟踪后,驱动程序管理器会在两点调用跟踪 DLL:一次在函数入口(自变量验证之前),另一次在函数返回之前。
当应用程序调用函数时,驱动程序管理器会在调用驱动程序中的函数或处理调用本身之前在跟踪 DLL 中调用跟踪函数。 每个 ODBC 函数都有一个对应的跟踪函数(以 Trace 为前缀),除了名称外,该函数与 ODBC 函数相同。 调用跟踪函数时,跟踪 DLL 会捕获输入自变量并返回返回代码。 因为跟踪 DLL 是在驱动程序管理器验证自变量之前调用的,所以会跟踪无效的函数调用,因此将记录状态转换错误和无效自变量。
调用跟踪 DLL 中的跟踪函数后,驱动程序管理器会调用驱动程序中的 ODBC 函数。 然后,会调用跟踪 DLL 中的 TraceReturn。 此函数采用两个自变量:跟踪函数的跟踪 DLL 返回的值,以及驱动程序返回给 ODBC 函数驱动程序管理器的返回代码(或者驱动程序管理器本身处理函数时返回的值)。 该函数使用为跟踪函数返回的值来操作捕获的输入自变量值。 将为 ODBC 函数返回的代码写入日志文件(如果已启用,则动态显示)。 取消引用输出自变量指针并记录输出自变量值。