Bagikan melalui


Manajer Driver

Driver Manager adalah pustaka yang mengelola komunikasi antara aplikasi dan driver. Misalnya, pada platform Microsoft Windows, Driver Manager adalah pustaka tautan dinamis (DLL) yang ditulis oleh Microsoft dan dapat didistribusikan ulang oleh pengguna MDAC 2.8 SP1 SDK yang dapat didistribusikan ulang.

Driver Manager ada terutama sebagai kenyamanan untuk penulis aplikasi dan memecahkan sejumlah masalah yang umum untuk semua aplikasi. Ini termasuk menentukan driver mana yang akan dimuat berdasarkan nama sumber data, memuat dan membongkar driver, dan fungsi panggilan dalam driver.

Untuk melihat mengapa yang terakhir adalah masalah, pertimbangkan apa yang akan terjadi jika aplikasi yang disebut fungsi di driver secara langsung. Kecuali aplikasi ditautkan langsung ke driver tertentu, aplikasi harus membangun tabel penunjuk ke fungsi dalam driver tersebut dan memanggil fungsi tersebut dengan pointer. Menggunakan kode yang sama untuk lebih dari satu driver pada satu waktu akan menambahkan tingkat kompleksitas lain. Aplikasi pertama-tama harus mengatur penunjuk fungsi untuk menunjuk ke fungsi yang benar di driver yang benar, lalu memanggil fungsi melalui penunjuk tersebut.

Driver Manager memecahkan masalah ini dengan menyediakan satu tempat untuk memanggil setiap fungsi. Aplikasi ini ditautkan ke Driver Manager dan memanggil fungsi ODBC di Driver Manager, bukan driver. Aplikasi mengidentifikasi driver target dan sumber data dengan handel koneksi. Saat memuat driver, Driver Manager membangun tabel pointer ke fungsi di driver tersebut. Ini menggunakan handel koneksi yang diteruskan oleh aplikasi untuk menemukan alamat fungsi di driver target dan memanggil fungsi tersebut berdasarkan alamat.

Sebagian besar, Driver Manager hanya meneruskan panggilan fungsi dari aplikasi ke driver yang benar. Namun, ini juga mengimplementasikan beberapa fungsi (SQLDataSources, SQLDrivers, dan SQLGetFunctions) dan melakukan pemeriksaan kesalahan dasar. Misalnya, Driver Manager memeriksa bahwa handel bukan penunjuk null, bahwa fungsi dipanggil dalam urutan yang benar, dan bahwa argumen fungsi tertentu valid. Untuk deskripsi lengkap tentang kesalahan yang diperiksa oleh Manajer Driver, lihat bagian referensi untuk setiap fungsi dan Lampiran B: Tabel Transisi Status ODBC.

Peran utama terakhir dari Driver Manager adalah memuat dan membongkar driver. Aplikasi hanya memuat dan membongkar Driver Manager. Ketika ingin menggunakan driver tertentu, ia memanggil fungsi koneksi (SQL Koneksi, SQLDriver Koneksi, atau SQLBrowse Koneksi) di Manajer Driver dan menentukan nama sumber data atau driver tertentu, seperti "Akuntansi" atau "SQL Server." Dengan menggunakan nama ini, Manajer Driver mencari informasi sumber data untuk nama file driver, seperti Sqlsrvr.dll. Kemudian memuat driver (dengan asumsi belum dimuat), menyimpan alamat setiap fungsi dalam driver, dan memanggil fungsi koneksi di driver, yang kemudian menginisialisasi dirinya sendiri dan terhubung ke sumber data.

Ketika aplikasi selesai menggunakan driver, aplikasi memanggil SQLDisconnect di Driver Manager. Driver Manager memanggil fungsi ini di driver, yang terputus dari sumber data. Namun, Driver Manager menyimpan driver dalam memori jika aplikasi terhubung kembali ke driver tersebut. Ini membongkar driver hanya ketika aplikasi membebaskan koneksi yang digunakan oleh driver atau menggunakan koneksi untuk driver yang berbeda, dan tidak ada koneksi lain yang menggunakan driver. Untuk deskripsi lengkap tentang peran Manajer Driver dalam memuat dan membongkar driver, lihat Peran Manajer Driver dalam Proses Koneksi ion.