SQLGetDiagField
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Driver ODBC Klien Asli SQL Server menentukan bidang diagnostik tambahan berikut untuk SQLGetDiagField. Bidang ini mendukung pelaporan kesalahan yang kaya untuk aplikasi SQL Server dan tersedia di semua catatan diagnostik yang dihasilkan pada handel koneksi ODBC yang terhubung dan penanganan pernyataan ODBC. Bidang didefinisikan dalam sqlncli.h.
Bidang rekaman diagnostik | Deskripsi |
---|---|
SQL_DIAG_SS_LINE | Melaporkan nomor baris prosedur tersimpan yang menghasilkan kesalahan. Nilai SQL_DIAG_SS_LINE bermakna hanya jika SQL_DIAG_SS_PROCNAME mengembalikan nilai. Nilai dikembalikan sebagai bilangan bulat 16-bit yang tidak ditandatangani. |
SQL_DIAG_SS_MSGSTATE | Status pesan kesalahan. Untuk informasi tentang status pesan kesalahan, lihat RAISERROR. Nilai dikembalikan sebagai bilangan bulat 32-bit yang ditandatangani. |
SQL_DIAG_SS_PROCNAME | Nama prosedur tersimpan yang menghasilkan kesalahan, jika sesuai. Nilai dikembalikan sebagai string karakter. Panjang string (dalam karakter) tergantung pada versi SQL Server. Ini dapat ditentukan dengan memanggil SQLGetInfo yang meminta nilai untuk SQL_MAX_PROCEDURE_NAME_LEN. |
SQL_DIAG_SS_SEVERITY | Tingkat keparahan pesan kesalahan terkait. Nilai dikembalikan sebagai bilangan bulat 32-bit yang ditandatangani. |
SQL_DIAG_SS_SRVNAME | Nama server tempat kesalahan terjadi. Nilai dikembalikan sebagai string karakter. Panjang string (dalam karakter) ditentukan oleh makro SQL_MAX_SQLSERVERNAME dalam sqlncli.h. |
Bidang diagnostik khusus SQL Server yang berisi data karakter, SQL_DIAG_SS_PROCNAME dan SQL_DIAG_SS_SRVNAME, mengembalikan data tersebut ke klien sebagai string null dihentikan, ANSI, atau Unicode. Jika perlu, jumlah karakter harus disesuaikan dengan lebar karakter. Secara bergantian, jenis data C portabel seperti TCHAR atau SQLTCHAR dapat digunakan untuk memastikan panjang variabel program yang benar.
Driver ODBC Klien Asli SQL Server melaporkan kode fungsi dinamis tambahan berikut yang mengidentifikasi pernyataan SQL Server terakhir yang dicoba. Kode fungsi dinamis dikembalikan di header (rekaman 0) dari kumpulan catatan diagnostik dan oleh karena itu tersedia pada setiap eksekusi (berhasil atau tidak).
Kode fungsi dinamis | Sumber |
---|---|
SQL_DIAG_DFC_SS_ALTER_DATABASE | Pernyataan ALTER DATABASE |
SQL_DIAG_DFC_SS_CHECKPOINT | Pernyataan CHECKPOINT |
SQL_DIAG_DFC_SS_CONDITION | Kesalahan muncul dalam klausa WHERE atau HAVING dari pernyataan. |
SQL_DIAG_DFC_SS_CREATE_DATABASE | Pernyataan CREATE DATABASE |
SQL_DIAG_DFC_SS_CREATE_DEFAULT | Pernyataan CREATE DEFAULT |
SQL_DIAG_DFC_SS_CREATE_PROCEDURE | Pernyataan CREATE PROCEDURE |
SQL_DIAG_DFC_SS_CREATE_RULE | Pernyataan CREATE RULE |
SQL_DIAG_DFC_SS_CREATE_TRIGGER | Pernyataan CREATE TRIGGER |
SQL_DIAG_DFC_SS_CURSOR_DECLARE | MENDEKLARASIKAN pernyataan KURSOR |
SQL_DIAG_DFC_SS_CURSOR_OPEN | Pernyataan OPEN |
SQL_DIAG_DFC_SS_CURSOR_FETCH | Pernyataan FETCH |
SQL_DIAG_DFC_SS_CURSOR_CLOSE | Pernyataan CLOSE |
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR | Pernyataan DEALLOCATE |
SQL_DIAG_DFC_SS_DBCC | Pernyataan DBCC |
SQL_DIAG_DFC_SS_DENY | Pernyataan DENY |
SQL_DIAG_DFC_SS_DROP_DATABASE | Pernyataan DROP DATABASE |
SQL_DIAG_DFC_SS_DROP_DEFAULT | Pernyataan DROP DEFAULT |
SQL_DIAG_DFC_SS_DROP_PROCEDURE | Pernyataan DROP PROCEDURE |
SQL_DIAG_DFC_SS_DROP_RULE | Pernyataan DROP RULE |
SQL_DIAG_DFC_SS_DROP_TRIGGER | Pernyataan DROP TRIGGER |
SQL_DIAG_DFC_SS_DUMP_DATABASE | Pernyataan BACKUP atau DUMP DATABASE |
SQL_DIAG_DFC_SS_DUMP_TABLE | Pernyataan DUMP TABLE |
SQL_DIAG_DFC_SS_DUMP_TRANSACTION | Pernyataan TRANSAKSI CADANGAN atau DUMP. Juga dikembalikan untuk pernyataan CHECKPOINT jika opsi trunc. log pada chkpt. database aktif. |
SQL_DIAG_DFC_SS_GOTO | Pernyataan kontrol aliran GOTO |
SQL_DIAG_DFC_SS_INSERT_BULK | Pernyataan INSERT BULK |
SQL_DIAG_DFC_SS_KILL | Pernyataan KILL |
SQL_DIAG_DFC_SS_LOAD_DATABASE | Pernyataan LOAD atau RESTORE DATABASE |
SQL_DIAG_DFC_SS_LOAD_HEADERONLY | Memuat atau MEMULIHKAN pernyataan HEADERONLY |
SQL_DIAG_DFC_SS_LOAD_TABLE | Pernyataan LOAD TABLE |
SQL_DIAG_DFC_SS_LOAD_TRANSACTION | Pernyataan LOAD atau RESTORE TRANSACTION |
SQL_DIAG_DFC_SS_PRINT | Pernyataan PRINT |
SQL_DIAG_DFC_SS_RAISERROR | Pernyataan RAISERROR |
SQL_DIAG_DFC_SS_READTEXT | Pernyataan READTEXT |
SQL_DIAG_DFC_SS_RECONFIGURE | Pernyataan KONFIGURASI ULANG |
SQL_DIAG_DFC_SS_RETURN | Pernyataan kontrol aliran RETURN |
SQL_DIAG_DFC_SS_SELECT_INTO | Pernyataan SELECT INTO |
SQL_DIAG_DFC_SS_SET | Pernyataan SET (umum, semua opsi) |
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT | Set pernyataan IDENTITY_INSERT |
SQL_DIAG_DFC_SS_SET_ROW_COUNT | ATUR pernyataan ROWCOUNT |
SQL_DIAG_DFC_SS_SET_STATISTICS | MENGATUR pernyataan STATISTICS IO atau SET STATISTICS TIME |
SQL_DIAG_DFC_SS_SET_TEXTSIZE | ATUR pernyataan TEXTSIZE |
SQL_DIAG_DFC_SS_SETUSER | Pernyataan SETUSER |
SQL_DIAG_DFC_SS_SET_XCTLVL | MENETAPKAN pernyataan TINGKAT ISOLASI TRANSAKSI |
SQL_DIAG_DFC_SS_SHUTDOWN | Pernyataan SHUTDOWN |
SQL_DIAG_DFC_SS_TRANS_BEGIN | Pernyataan BEGIN TRAN |
SQL_DIAG_DFC_SS_TRANS_COMMIT | Pernyataan COMMIT TRAN |
SQL_DIAG_DFC_SS_TRANS_PREPARE | Bersiap untuk melakukan transaksi terdistribusi |
SQL_DIAG_DFC_SS_TRANS_ROLLBACK | Pernyataan ROLLBACK TRAN |
SQL_DIAG_DFC_SS_TRANS_SAVE | Pernyataan SAVE TRAN |
SQL_DIAG_DFC_SS_TRUNCATE_TABLE | Pernyataan TRUNCATE TABLE |
SQL_DIAG_DFC_SS_UPDATE_STATISTICS | Pernyataan UPDATE STATISTICS |
SQL_DIAG_DFC_SS_UPDATETEXT | Pernyataan UPDATETEXT |
SQL_DIAG_DFC_SS_USE | Pernyataan USE |
SQL_DIAG_DFC_SS_WAITFOR | Pernyataan control-of-flow WAITFOR |
SQL_DIAG_DFC_SS_WRITETEXT | Pernyataan WRITETEXT |
Parameter SQLGetDiagField dan Table-Valued
SQLGetDiagField dapat digunakan untuk mengambil dua bidang diagnostik: SQL_DIAG_SS_TABLE_COLUMN_NUMBER dan SQL_DIAG_SS_TABLE_ROW_NUMBER. Bidang ini membantu Anda menentukan nilai mana yang menyebabkan kesalahan atau peringatan yang terkait dengan catatan diagnostik.
Untuk informasi selengkapnya tentang parameter bernilai tabel, lihat Parameter Bernilai Tabel (ODBC).