Bagikan melalui


Detail Kesalahan SQL Server

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

Unduh driver OLE DB

Driver OLE DB untuk SQL Server menentukan antarmuka kesalahan khusus penyedia ISQLServerErrorInfo. Antarmuka mengembalikan detail lebih lanjut tentang kesalahan SQL Server dan 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 mendapatkan 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 penunjuk 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 pergi 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 SQL Server pesan kesalahan. 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 SQL Server nomor kesalahan asli. Identik dengan nilai yang dikembalikan dalam parameter plNativeErrorISQLErrorInfo::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)