Detail Kesalahan Klien Asli SQL Server

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)

Penyedia SQL Server Native Client OLE DB menentukan antarmuka kesalahan khusus penyedia ISQLServerErrorInfo. Antarmuka mengembalikan detail lebih lanjut tentang kesalahan SQL Server dan sangat berharga ketika eksekusi perintah atau operasi set baris gagal.

Ada dua cara untuk mendapatkan akses ke antarmuka ISQLServerErrorInfo .

Konsumen dapat memanggil IErrorRecords::GetCustomerErrorObject untuk mendapatkan pointer ISQLServerErrorInfo , seperti yang ditunjukkan dalam sampel kode berikut. (Tidak perlu memperoleh ISQLErrorInfo.) ISQLErrorInfo dan ISQLServerErrorInfo adalah objek kesalahan OLE DB kustom, dengan ISQLServerErrorInfo menjadi antarmuka yang digunakan untuk mendapatkan informasi kesalahan server, termasuk detail seperti nama prosedur dan nomor baris.

// Get the SQL Server custom error object.  
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(  
   nRec, IID_ISQLServerErrorInfo,  
   (IUnknown**)&pISQLServerErrorErrorInfo)))  

Cara lain untuk mendapatkan pointer ISQLServerErrorInfo adalah dengan memanggil metode QueryInterface pada pointer ISQLErrorInfo yang sudah diperoleh. Perhatikan bahwa karena ISQLServerErrorInfo berisi superset informasi yang tersedia dari ISQLErrorInfo, masuk akal untuk langsung ke ISQLServerErrorInfo melalui GetCustomerErrorObject.

Antarmuka ISQLServerErrorInfo mengekspos satu fungsi anggota, ISQLServerErrorInfo::GetErrorInfo. Fungsi mengembalikan penunjuk ke struktur SSERRORINFO dan penunjuk ke buffer string. Kedua pointer mereferensikan memori konsumen harus membatalkan alokasi dengan menggunakan metode IMalloc::Free .

Anggota struktur SSERRORINFO ditafsirkan oleh konsumen sebagai berikut.

Anggota Deskripsi
pwszMessage Pesan kesalahan SQL Server. Identik dengan string yang dikembalikan di IErrorInfo::GetDescription.
pwszServer Nama instans SQL Server untuk sesi tersebut.
pwszProcedure Jika sesuai, nama prosedur tempat kesalahan berasal. String kosong jika tidak.
lNative Nomor kesalahan asli SQL Server. Identik dengan nilai yang dikembalikan dalam parameter plNativeError ISQLErrorInfo ::GetSQLInfo.
bState Status pesan kesalahan SQL Server.
bClass Tingkat keparahan pesan kesalahan SQL Server.
wLineNumber Jika berlaku, nomor baris prosedur tersimpan tempat kesalahan terjadi.

Lihat Juga

Kesalahan
RAISERROR (Transact-SQL)