Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ingatlah bahwa aplikasi tidak memanggil fungsi driver secara langsung. Sebaliknya, mereka menggunakan fungsi dengan nama yang sama dari Driver Manager, dan Driver Manager akan memanggil fungsi driver. Biasanya, ini terjadi hampir segera. Misalnya, aplikasi memanggil SQLExecute di Driver Manager dan setelah beberapa pemeriksaan kesalahan, Driver Manager memanggil SQLExecute di driver.
Proses koneksi berbeda. Ketika aplikasi memanggil SQLAllocHandle dengan opsi SQL_HANDLE_ENV dan SQL_HANDLE_DBC, fungsi hanya mengalokasikan handel di Driver Manager. Manajer Driver tidak memanggil fungsi ini pada pengandar karena tidak tahu driver mana yang akan dipanggil. Demikian pula, jika aplikasi meneruskan handel koneksi yang tidak terhubung ke SQLSetConnectAttr atau SQLGetConnectAttr, hanya Manajer Driver yang menjalankan fungsi. Ini menyimpan atau mendapatkan nilai atribut dari handle koneksinya dan mengembalikan SQLSTATE 08003 (Koneksi tidak terbuka) ketika mencoba mendapatkan nilai untuk atribut yang belum ditetapkan dan ODBC tidak mendefinisikan nilai default.
Ketika aplikasi memanggil SQLConnect, SQLDriverConnect, atau SQLBrowseConnect, Driver Manager terlebih dahulu menentukan driver mana yang akan digunakan. Kemudian memeriksa untuk menentukan apakah driver saat ini dimuat pada koneksi:
Jika tidak ada driver yang dimuat pada koneksi, Manajer Driver memeriksa apakah driver yang ditentukan dimuat pada koneksi lain di lingkungan yang sama. Jika tidak, Driver Manager memuat driver pada koneksi dan memanggil SQLAllocHandle di driver dengan opsi SQL_HANDLE_ENV.
Driver Manager kemudian memanggil SQLAllocHandle di driver dengan opsi SQL_HANDLE_DBC, apakah itu baru saja dimuat atau tidak. Jika aplikasi mengatur atribut koneksi apa pun, Driver Manager memanggil SQLSetConnectAttr di driver; jika terjadi kesalahan, fungsi koneksi Driver Manager mengembalikan SQLSTATE IM006 ( Driver SQLSetConnectAttr gagal). Terakhir, Driver Manager memanggil fungsi koneksi di driver.
Jika driver yang ditentukan dimuat pada koneksi, Manajer Driver hanya memanggil fungsi koneksi di driver. Dalam hal ini, driver harus memastikan bahwa semua atribut koneksi pada koneksi mempertahankan pengaturannya saat ini.
Jika driver yang berbeda dimuat pada koneksi, Driver Manager memanggil SQLFreeHandle di driver untuk membebaskan koneksi. Jika tidak ada koneksi lain yang menggunakan driver, Driver Manager memanggil SQLFreeHandle di driver untuk membebaskan lingkungan dan membongkar driver. Manajer Driver kemudian melakukan operasi yang sama seperti ketika driver tidak dimuat pada koneksi.
Driver Manager akan mengunci handle lingkungan (henv) sebelum memanggil driver's SQLAllocHandle dan SQLFreeHandle saat HandleType diatur ke SQL_HANDLE_DBC.
Ketika aplikasi memanggil SQLDisconnect, Manajer Driver memanggil SQLDisconnect di driver. Namun, driver tetap dimuat jika aplikasi terhubung kembali ke driver. Ketika aplikasi memanggil SQLFreeHandle dengan opsi SQL_HANDLE_DBC, Driver Manager memanggil SQLFreeHandle di driver. Jika driver tidak digunakan oleh koneksi lainnya, kemudian Driver Manager memanggil SQLFreeHandle pada driver dengan opsi SQL_HANDLE_ENV dan mengeluarkan driver.