Fungsi ConfigDriver
Kesesuaian
Versi diperkenalkan: ODBC 2.5
Ringkasan
ConfigDriver memungkinkan program penyetelan untuk melakukan fungsi penginstalan dan penghapusan instalasi tanpa mengharuskan program memanggil ConfigDSN. Fungsi ini akan melakukan fungsi khusus driver seperti membuat informasi sistem khusus driver dan melakukan konversi DSN selama penginstalan, serta membersihkan modifikasi informasi sistem selama penghapusan instalasi. Fungsi ini diekspos oleh DLL penyetelan driver atau DLL penyiapan terpisah.
Sintaks
BOOL ConfigDriver(
HWND hwndParent,
WORD fRequest,
LPCSTR lpszDriver,
LPCSTR lpszArgs,
LPSTR lpszMsg,
WORD cbMsgMax,
WORD * pcbMsgOut);
Argumen
hwndParent
[Input] Handel jendela induk. Fungsi tidak akan menampilkan kotak dialog apa pun jika handel null.
fRequest
[Input] Jenis permintaan. Argumen fRequest harus berisi salah satu nilai berikut:
ODBC_INSTALL_DRIVER: Instal driver baru.
ODBC_REMOVE_DRIVER: Menghapus driver.
Opsi ini juga dapat menjadi khusus driver, dalam hal ini argumen fRequest untuk opsi pertama harus dimulai dari ODBC_CONFIG_DRIVER_MAX+1. Argumen fRequest untuk opsi tambahan apa pun juga harus dimulai dari nilai yang lebih besar dari ODBC_CONFIG_DRIVER_MAX+1.
lpszDriver
[Input] Nama driver sebagaimana terdaftar dalam kunci Odbcinst.ini dari informasi sistem.
lpszArgs
[Input] String null-terminated yang berisi argumen untuk fRequest khusus driver.
lpszMsg
[Output] String null-terminated yang berisi pesan output dari penyiapan driver.
cbMsgMax
[Input] Panjang lpszMsg.
pcbMsgOut
[Output] Jumlah total byte yang tersedia untuk dikembalikan dalam lpszMsg.
Jika jumlah byte yang tersedia untuk dikembalikan lebih besar dari atau sama dengan cbMsgMax, pesan output di lpszMsg dipotong menjadi cbMsgMax dikurangi karakter penghentian null. Argumen pcbMsgOut dapat berupa penunjuk null.
Kembali
Fungsi mengembalikan TRUE jika berhasil, FALSE jika gagal.
Diagnostik
Saat ConfigDriver mengembalikan FALSE, nilai *pfErrorCode terkait diposting ke buffer kesalahan penginstal dengan panggilan ke SQLPostInstallerError dan dapat diperoleh dengan memanggil SQLInstallerError. Tabel berikut mencantumkan nilai *pfErrorCode yang dapat dikembalikan oleh SQLInstallerError dan menjelaskan masing-masing nilai dalam konteks fungsi ini.
*pfErrorCode | Kesalahan | Deskripsi |
---|---|---|
ODBC_ERROR_INVALID_HWND | Handel jendela tidak valid | Argumen hwndParent tidak valid. |
ODBC_ERROR_INVALID_REQUEST_TYPE | Jenis permintaan tidak valid | Argumen fRequest bukan salah satu dari berikut ini: ODBC_INSTALL_DRIVER ODBC_REMOVE_DRIVER Opsi khusus driver kurang dari atau sama dengan ODBC_CONFIG_DRIVER_MAX. |
ODBC_ERROR_INVALID_NAME | Nama pengandar atau penerjemah tidak valid | Argumen lpszDriver tidak valid. Ini tidak dapat ditemukan di registri. |
ODBC_ERROR_REQUEST_FAILED | Permintaan gagal | Tidak dapat melakukan operasi yang diminta oleh argumen fRequest . |
ODBC_ERROR_DRIVER_SPECIFIC | Kesalahan khusus driver atau penerjemah | Kesalahan khusus driver yang tidak ada kesalahan penginstal ODBC yang ditentukan. Argumen SzError dalam panggilan ke fungsi SQLPostInstallerError harus berisi pesan kesalahan khusus driver. |
Komentar
Opsi Khusus Driver
Aplikasi dapat meminta fitur khusus driver yang diekspos oleh driver dengan menggunakan argumen fRequest . FRequest untuk opsi pertama akan ODBC_CONFIG_DRIVER_MAX ditambah 1, dan opsi tambahan akan bertambah 1 dari nilai tersebut. Argumen apa pun yang diperlukan oleh driver untuk fungsi tersebut harus disediakan dalam string null-terminated yang diteruskan dalam argumen lpszArgs . Driver yang menyediakan fungsionalitas tersebut harus mempertahankan tabel opsi khusus driver. Opsi harus sepenuhnya didokumenkan dalam dokumentasi driver. Penulis aplikasi yang menggunakan opsi khusus driver harus menyadari bahwa ini akan membuat aplikasi kurang dapat dioperasikan.
Pesan
Rutinitas penyiapan driver dapat mengirim pesan teks ke aplikasi sebagai string null-terminated di buffer lpszMsg . Pesan akan dipotong menjadi cbMsgMax dikurangi karakter penghentian null oleh fungsi ConfigDriver jika lebih besar dari atau sama dengan karakter cbMsgMax .