Bagikan melalui


Fungsi SQLInstallerError

Kesesuaian
Versi diperkenalkan: ODBC 3.0

Ringkasan
SQLInstallerError mengembalikan informasi kesalahan atau status untuk fungsi penginstal ODBC.

Sintaks

  
RETCODE SQLInstallerError(  
     WORD      iError,  
     DWORD *   pfErrorCode,  
     LPSTR     lpszErrorMsg,  
     WORD      cbErrorMsgMax,  
     WORD *    pcbErrorMsg);  

Argumen

iError
[Input] Nomor rekaman kesalahan. Angka yang valid adalah dari 1 hingga 8.

pfErrorCode
[Output] Kode kesalahan penginstal. (Untuk informasi selengkapnya, lihat "Komentar.")

lpszErrorMsg
[Output] Penunjuk ke penyimpanan untuk teks pesan kesalahan.

cbErrorMsgMax
[Input] Panjang maksimum buffer szErrorMsg . Ini harus kurang dari atau sama dengan SQL_MAX_MESSAGE_LENGTH dikurangi karakter penghentian null.

cbErrorMsgMax
[Input] Panjang maksimum buffer szErrorMsg . Ini harus kurang dari atau sama dengan SQL_MAX_MESSAGE_LENGTH dikurangi karakter penghentian null.

pcbErrorMsg
[Output] Penunjuk ke jumlah total byte (tidak termasuk karakter penghentian null) yang tersedia untuk dikembalikan di lpszErrorMsg. Jika jumlah byte yang tersedia untuk dikembalikan lebih besar dari atau sama dengan cbErrorMsgMax, teks pesan kesalahan di lpszErrorMsg dipotong menjadi cbErrorMsgMax dikurangi byte karakter null-termination. Argumen pcbErrorMsg dapat berupa penunjuk null.

Kembali

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_NO_DATA, atau SQL_ERROR.

Diagnostik

SQLInstallerError tidak memposting nilai kesalahan untuk dirinya sendiri. SQLInstallerError mengembalikan SQL_NO_DATA ketika tidak dapat mengambil informasi kesalahan apa pun (dalam hal ini pfErrorCode tidak terdefinisi). Jika SQLInstallerError tidak dapat mengakses nilai kesalahan karena alasan apa pun yang biasanya mengembalikan SQL_ERROR, SQLInstallerError mengembalikan SQL_ERROR tetapi tidak memposting nilai kesalahan apa pun. Jika Anda tidak tahu panjang string peringatan (lpszErrorMsg), Anda dapat mengatur lpszErrorMsg ke NULL dan memanggil SQLInstallerError. SQLInstallerError kemudian akan mengembalikan panjang string peringatan di cbErrorMsgMax. Jika buffer untuk pesan kesalahan terlalu pendek, SQLInstallerError mengembalikan SQL_SUCCESS_WITH_INFO dan mengembalikan nilai pfErrorCode yang benar untuk SQLInstallerError.

Untuk menentukan apakah pemotongan terjadi dalam pesan kesalahan, aplikasi dapat membandingkan nilai dalam argumen cbErrorMsgMax dengan panjang aktual teks pesan yang ditulis ke argumen pcbErrorMsg . Jika pemotongan terjadi, panjang buffer yang benar harus dialokasikan untuk lpszErrorMsg dan SQLInstallerError harus dipanggil lagi dengan rekaman iError yang sesuai.

Komentar

Aplikasi memanggil SQLInstallerError ketika panggilan sebelumnya ke fungsi penginstal ODBC mengembalikan FALSE. Fungsi penyiapan penginstal dan penginstal ODBC atau penerjemah memposting kesalahan nol atau lebih hanya ketika fungsi gagal (mengembalikan FALSE); oleh karena itu, aplikasi memanggil SQLInstallerError hanya setelah fungsi penginstal ODBC gagal.

Antrean kesalahan penginstal ODBC dibersihkan setiap kali fungsi alat penginstal baru dipanggil. Oleh karena itu, aplikasi tidak dapat mengharapkan untuk mengambil kesalahan untuk fungsi selain dari panggilan fungsi penginstal terakhir.

Untuk mengambil beberapa kesalahan untuk panggilan fungsi, aplikasi memanggil SQLInstallerError beberapa kali.

Ketika tidak ada informasi tambahan, SQLInstallerError mengembalikan SQL_NO_DATA, argumen pfErrorCode tidak terdefinisi, argumen pcbErrorMsg sama dengan 0, dan argumen lpszErrorMsg berisi karakter penghentian null tunggal (kecuali argumen cbErrorMsgMax sama dengan 0).