Bagikan melalui


Lacak DLL

DLL yang melakukan pelacakan adalah salah satu komponen inti ODBC. DLL pelacakan saat ini disediakan sebagai DLL sampel di komponen ODBC dari Windows SDK, dan sebelumnya disertakan SDK Microsoft Data Access Components (MDAC). Oleh karena itu, entri registri, antarmuka, dan kode sampel untuk DLL pelacakan tersedia. DLL ini dapat digantikan oleh DLL jejak yang dihasilkan oleh pengguna ODBC atau vendor pihak ketiga. DLL pelacakan kustom harus diberi nama yang berbeda dari DLL pelacakan sampel asli. DLL pelacakan harus diinstal di direktori sistem, atau DLL akan gagal dimuat. string koneksi tidak akan diteruskan ke DLL pelacakan oleh Manajer Driver.

DLL pelacakan melacak argumen input, argumen output, argumen yang ditangguhkan, kode pengembalian, dan SQLSTATEs. Saat pelacakan diaktifkan, Driver Manager memanggil DLL pelacakan di dua titik: sekali setelah entri fungsi (sebelum validasi argumen) dan sekali lagi tepat sebelum fungsi kembali.

Ketika aplikasi memanggil fungsi, Driver Manager memanggil fungsi pelacakan di DLL pelacakan sebelum memanggil fungsi di driver atau memproses panggilan itu sendiri. Setiap fungsi ODBC memiliki fungsi pelacakan yang sesuai (diawali dengan Jejak) yang identik dengan fungsi ODBC dengan pengecualian nama. Ketika fungsi pelacakan dipanggil, DLL pelacakan mengambil argumen input dan mengembalikan kode pengembalian. Karena DLL pelacakan dipanggil sebelum Manajer Driver memvalidasi argumen, panggilan fungsi yang tidak valid dilacak, sehingga kesalahan transisi status dan argumen yang tidak valid dicatat.

Setelah memanggil fungsi pelacakan di DLL pelacakan, Manajer Driver memanggil fungsi ODBC di driver. Kemudian memanggil TraceReturn di DLL pelacakan. Fungsi ini mengambil dua argumen: nilai yang dikembalikan oleh DLL pelacakan untuk fungsi pelacakan, dan kode pengembalian yang dikembalikan oleh driver ke Driver Manager untuk fungsi ODBC (atau nilai yang dikembalikan oleh Driver Manager itu sendiri jika memproses fungsi). Fungsi ini menggunakan nilai yang dikembalikan untuk fungsi pelacakan untuk memanipulasi nilai argumen input yang diambil. Ini menulis kode yang dikembalikan untuk fungsi ODBC ke file log (atau menampilkannya secara dinamis, jika itu diaktifkan). Ini mendereferensikan pointer argumen output dan mencatat nilai argumen output.