SQLGetDiagField
SQL Server Native Client ODBC 驅動程式會針對 指定下列其他診斷欄位 SQLGetDiagField
。 這些欄位支援SQL Server應用程式的豐富錯誤報表,而且可在連線的 ODBC 連接控制碼和 ODBC 語句控制碼上產生的所有診斷記錄中使用。 欄位會定義在 sqlncli.h 中。
診斷記錄欄位 | 描述 |
---|---|
SQL_DIAG_SS_LINE | 報告產生錯誤的預存程序的行號。 SQL_DIAG_SS_LINE 的值只有在 SQL_DIAG_SS_PROCNAME 傳回值時才有意義。 值會以不帶正負號的 16 位元整數傳回。 |
SQL_DIAG_SS_MSGSTATE | 錯誤訊息的狀態。 如需錯誤訊息狀態的相關資訊,請參閱 RAISERROR。 值會以帶正負號的 32 位元整數傳回。 |
SQL_DIAG_SS_PROCNAME | 產生錯誤的預存程序的名稱 (如果適用)。 值會以字元字串傳回。 ) 字元 (字串的長度取決於SQL Server的版本。 呼叫 SQLGetInfo 來要求SQL_MAX_PROCEDURE_NAME_LEN的值,即可判斷它。 |
SQL_DIAG_SS_SEVERITY | 相關錯誤訊息的嚴重性層級。 值會以帶正負號的 32 位元整數傳回。 |
SQL_DIAG_SS_SRVNAME | 錯誤發生所在之伺服器的名稱。 值會以字元字串傳回。 字串長度 (以字元表示) 是由 SQL_MAX_SQLSERVERNAME 巨集在 sqlncli.h 中定義。 |
SQL Server特定診斷欄位,其中包含字元資料、SQL_DIAG_SS_PROCNAME和SQL_DIAG_SS_SRVNAME,會將該資料以 Null 終止、ANSI 或 Unicode 字串的形式傳回給用戶端。 如有必要,字元計數可依字元寬度進行調整。 或者,TCHAR 或 SQLTCHAR 之類的可攜式 C 資料類型可用來確保正確的程式變數長度。
SQL Server Native Client ODBC 驅動程式會報告下列其他動態函式程式碼,以識別上次嘗試的 SQL Server 語句。 動態函數程式碼會以診斷記錄集的標頭 (記錄 0) 傳回,因此會在每次執行時使用 (不論成功與否)。
動態函數程式碼 | 來源 |
---|---|
SQL_DIAG_DFC_SS_ALTER_DATABASE | ALTER DATABASE 陳述式 |
SQL_DIAG_DFC_SS_CHECKPOINT | CHECKPOINT 陳述式 |
SQL_DIAG_DFC_SS_CONDITION | 錯誤會發生在陳述式的 WHERE 或 HAVING 子句中。 |
SQL_DIAG_DFC_SS_CREATE_DATABASE | CREATE DATABASE 陳述式 |
SQL_DIAG_DFC_SS_CREATE_DEFAULT | CREATE DEFAULT 陳述式 |
SQL_DIAG_DFC_SS_CREATE_PROCEDURE | CREATE PROCEDURE 陳述式 |
SQL_DIAG_DFC_SS_CREATE_RULE | CREATE RULE 陳述式 |
SQL_DIAG_DFC_SS_CREATE_TRIGGER | CREATE TRIGGER 陳述式 |
SQL_DIAG_DFC_SS_CURSOR_DECLARE | DECLARE CURSOR 陳述式 |
SQL_DIAG_DFC_SS_CURSOR_OPEN | OPEN 陳述式 |
SQL_DIAG_DFC_SS_CURSOR_FETCH | FETCH 陳述式 |
SQL_DIAG_DFC_SS_CURSOR_CLOSE | CLOSE 陳述式 |
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR | DEALLOCATE 陳述式 |
SQL_DIAG_DFC_SS_DBCC | DBCC 陳述式 |
SQL_DIAG_DFC_SS_DENY | DENY 陳述式 |
SQL_DIAG_DFC_SS_DROP_DATABASE | DROP DATABASE 陳述式 |
SQL_DIAG_DFC_SS_DROP_DEFAULT | DROP DEFAULT 陳述式 |
SQL_DIAG_DFC_SS_DROP_PROCEDURE | DROP PROCEDURE 陳述式 |
SQL_DIAG_DFC_SS_DROP_RULE | DROP RULE 陳述式 |
SQL_DIAG_DFC_SS_DROP_TRIGGER | DROP TRIGGER 陳述式 |
SQL_DIAG_DFC_SS_DUMP_DATABASE | BACKUP 或 DUMP DATABASE 陳述式 |
SQL_DIAG_DFC_SS_DUMP_TABLE | DUMP TABLE 陳述式 |
SQL_DIAG_DFC_SS_DUMP_TRANSACTION | BACKUP 或 DUMP TRANSACTION 陳述式。 如果截斷,也會針對 CHECKPOINT 語句傳回 。登入 chkpt。 資料庫選項已開啟。 |
SQL_DIAG_DFC_SS_GOTO | GOTO 流程控制陳述式 |
SQL_DIAG_DFC_SS_INSERT_BULK | INSERT BULK 陳述式 |
SQL_DIAG_DFC_SS_KILL | KILL 陳述式 |
SQL_DIAG_DFC_SS_LOAD_DATABASE | LOAD 或 RESTORE DATABASE 陳述式 |
SQL_DIAG_DFC_SS_LOAD_HEADERONLY | LOAD 或 RESTORE HEADERONLY 陳述式 |
SQL_DIAG_DFC_SS_LOAD_TABLE | LOAD TABLE 陳述式 |
SQL_DIAG_DFC_SS_LOAD_TRANSACTION | LOAD 或 RESTORE TRANSACTION 陳述式 |
SQL_DIAG_DFC_SS_PRINT | PRINT 陳述式 |
SQL_DIAG_DFC_SS_RAISERROR | RAISERROR 陳述式 |
SQL_DIAG_DFC_SS_READTEXT | READTEXT 陳述式 |
SQL_DIAG_DFC_SS_RECONFIGURE | RECONFIGURE 陳述式 |
SQL_DIAG_DFC_SS_RETURN | RETURN 流程控制陳述式 |
SQL_DIAG_DFC_SS_SELECT_INTO | SELECT INTO 陳述式 |
SQL_DIAG_DFC_SS_SET | SET 陳述式 (一般、所有選項) |
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT | SET IDENTITY_INSERT 陳述式 |
SQL_DIAG_DFC_SS_SET_ROW_COUNT | SET ROWCOUNT 陳述式 |
SQL_DIAG_DFC_SS_SET_STATISTICS | SET STATISTICS IO 或 SET STATISTICS TIME 陳述式 |
SQL_DIAG_DFC_SS_SET_TEXTSIZE | SET TEXTSIZE 陳述式 |
SQL_DIAG_DFC_SS_SETUSER | SETUSER 陳述式 |
SQL_DIAG_DFC_SS_SET_XCTLVL | SET TRANSACTION ISOLATION LEVEL 陳述式 |
SQL_DIAG_DFC_SS_SHUTDOWN | SHUTDOWN 陳述式 |
SQL_DIAG_DFC_SS_TRANS_BEGIN | BEGIN TRAN 陳述式 |
SQL_DIAG_DFC_SS_TRANS_COMMIT | COMMIT TRAN 陳述式 |
SQL_DIAG_DFC_SS_TRANS_PREPARE | 準備認可分散式交易 |
SQL_DIAG_DFC_SS_TRANS_ROLLBACK | ROLLBACK TRAN 陳述式 |
SQL_DIAG_DFC_SS_TRANS_SAVE | SAVE TRAN 陳述式 |
SQL_DIAG_DFC_SS_TRUNCATE_TABLE | TRUNCATE TABLE 陳述式 |
SQL_DIAG_DFC_SS_UPDATE_STATISTICS | UPDATE STATISTICS 陳述式 |
SQL_DIAG_DFC_SS_UPDATETEXT | UPDATETEXT 陳述式 |
SQL_DIAG_DFC_SS_USE | USE 陳述式 |
SQL_DIAG_DFC_SS_WAITFOR | WAITFOR 流程控制陳述式 |
SQL_DIAG_DFC_SS_WRITETEXT | WRITETEXT 陳述式 |
SQLGetDiagField 和資料表值參數
SQLGetDiagField 可用來擷取兩個診斷欄位:SQL_DIAG_SS_TABLE_COLUMN_NUMBER和SQL_DIAG_SS_TABLE_ROW_NUMBER。 這些欄位可協助您判斷哪些值導致與診斷記錄相關聯的錯誤或警告。
如需資料表值參數的詳細資訊,請參閱 資料表值參數 (ODBC) 。