SQLGetDiagField
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Il driver ODBC di SQL Server Native Client specifica i campi di diagnostica aggiuntivi seguenti per SQLGetDiagField. Questi campi supportano la segnalazione errori avanzata per le applicazioni SQL Server e sono disponibili in tutti i record di diagnostica generati negli handle di connessione ODBC connessi e negli handle di istruzioni ODBC. I campi sono definiti in sqlncli.h.
Campo del record di diagnostica | Descrizione |
---|---|
SQL_DIAG_SS_LINE | Segnala il numero di riga di una stored procedure che genera un errore. Il valore di SQL_DIAG_SS_LINE è significativo solo se SQL_DIAG_SS_PROCNAME restituisce un valore. Il valore viene restituito come numero intero senza segno a 16 bit. |
SQL_DIAG_SS_MSGSTATE | Stato di un messaggio di errore. Per informazioni sullo stato del messaggio di errore, vedere RAISERROR. Il valore viene restituito come numero intero con segno a 32 bit. |
SQL_DIAG_SS_PROCNAME | Nome della stored procedure che genera un errore, se appropriato. Il valore viene restituito come stringa di caratteri. La lunghezza della stringa (in caratteri) dipende dalla versione di SQL Server. Può essere determinata chiamando SQLGetInfo che richiede il valore per SQL_MAX_PROCEDURE_NAME_LEN. |
SQL_DIAG_SS_SEVERITY | Livello di gravità del messaggio di errore associato. Il valore viene restituito come numero intero con segno a 32 bit. |
SQL_DIAG_SS_SRVNAME | Nome del server in cui si è verificato l'errore. Il valore viene restituito come stringa di caratteri. La lunghezza della stringa (in caratteri) viene definita dalla macro SQL_MAX_SQLSERVERNAME in sqlncli.h. |
Campi di diagnostica specifici di SQL Server che contengono dati di tipo carattere, SQL_DIAG_SS_PROCNAME e SQL_DIAG_SS_SRVNAME, restituiscono tali dati al client come stringhe null terminate, ANSI o Unicode. Se necessario, il conteggio dei caratteri deve essere regolato in base alla larghezza dei caratteri. In alternativa, è possibile utilizzare un tipo di dati C portabile, ad esempio TCHAR o SQLTCHAR, per assicurare una lunghezza corretta della variabile di programma.
Il driver ODBC di SQL Server Native Client segnala i codici di funzione dinamici aggiuntivi seguenti che identificano l'ultima istruzione di SQL Server tentata. Il codice di funzione dinamica viene restituito nell'intestazione (record 0) del set di record di diagnostica ed è pertanto disponibile a ogni esecuzione, indipendentemente dall'esito di quest'ultima.
Codice di funzione dinamica | Origine |
---|---|
SQL_DIAG_DFC_SS_ALTER_DATABASE | ALTER DATABASE - istruzione |
SQL_DIAG_DFC_SS_CHECKPOINT | Istruzione CHECKPOINT |
SQL_DIAG_DFC_SS_CONDITION | L'errore si è verificato nella clausola WHERE o HAVING di un'istruzione. |
SQL_DIAG_DFC_SS_CREATE_DATABASE | Istruzione CREATE DATABASE |
SQL_DIAG_DFC_SS_CREATE_DEFAULT | Istruzione CREATE DEFAULT |
SQL_DIAG_DFC_SS_CREATE_PROCEDURE | CREATE PROCEDURE - istruzione |
SQL_DIAG_DFC_SS_CREATE_RULE | Istruzione CREATE RULE |
SQL_DIAG_DFC_SS_CREATE_TRIGGER | CREATE TRIGGER - istruzione |
SQL_DIAG_DFC_SS_CURSOR_DECLARE | DECLARE CURSOR - istruzione |
SQL_DIAG_DFC_SS_CURSOR_OPEN | OPEN - istruzione |
SQL_DIAG_DFC_SS_CURSOR_FETCH | FETCH - istruzione |
SQL_DIAG_DFC_SS_CURSOR_CLOSE | Istruzione CLOSE |
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR | DEALLOCATE - istruzione |
SQL_DIAG_DFC_SS_DBCC | Istruzione DBCC |
SQL_DIAG_DFC_SS_DENY | DENY - istruzione |
SQL_DIAG_DFC_SS_DROP_DATABASE | DROP DATABASE - istruzione |
SQL_DIAG_DFC_SS_DROP_DEFAULT | Istruzione DROP DEFAULT |
SQL_DIAG_DFC_SS_DROP_PROCEDURE | Istruzione DROP PROCEDURE |
SQL_DIAG_DFC_SS_DROP_RULE | Istruzione DROP RULE |
SQL_DIAG_DFC_SS_DROP_TRIGGER | Istruzione DROP TRIGGER |
SQL_DIAG_DFC_SS_DUMP_DATABASE | Istruzione BACKUP o DUMP DATABASE |
SQL_DIAG_DFC_SS_DUMP_TABLE | Istruzione DUMP TABLE |
SQL_DIAG_DFC_SS_DUMP_TRANSACTION | Istruzione BACKUP o DUMP TRANSACTION. Restituito anche per un'istruzione CHECKPOINT se l'trunc. log in chkpt. l'opzione di database è attivata. |
SQL_DIAG_DFC_SS_GOTO | Istruzione per il controllo di flusso GOTO |
SQL_DIAG_DFC_SS_INSERT_BULK | Istruzione INSERT BULK |
SQL_DIAG_DFC_SS_KILL | Istruzione KILL |
SQL_DIAG_DFC_SS_LOAD_DATABASE | Istruzione LOAD o RESTORE DATABASE |
SQL_DIAG_DFC_SS_LOAD_HEADERONLY | Istruzione LOAD o RESTORE HEADERONLY. |
SQL_DIAG_DFC_SS_LOAD_TABLE | Istruzione LOAD TABLE |
SQL_DIAG_DFC_SS_LOAD_TRANSACTION | Istruzione LOAD o RESTORE TRANSACTION |
SQL_DIAG_DFC_SS_PRINT | istruzione PRINT |
SQL_DIAG_DFC_SS_RAISERROR | istruzione RAISERROR |
SQL_DIAG_DFC_SS_READTEXT | Istruzione READTEXT |
SQL_DIAG_DFC_SS_RECONFIGURE | Istruzione RECONFIGURE |
SQL_DIAG_DFC_SS_RETURN | Istruzione per il controllo di flusso RETURN |
SQL_DIAG_DFC_SS_SELECT_INTO | SELECT INTO - istruzione |
SQL_DIAG_DFC_SS_SET | Istruzione SET (generica, tutte le opzioni) |
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT | SET IDENTITY_INSERT - istruzione |
SQL_DIAG_DFC_SS_SET_ROW_COUNT | SET ROWCOUNT - istruzione |
SQL_DIAG_DFC_SS_SET_STATISTICS | Istruzione SET STATISTICS IO o SET STATISTICS TIME |
SQL_DIAG_DFC_SS_SET_TEXTSIZE | SET TEXTSIZE - istruzione |
SQL_DIAG_DFC_SS_SETUSER | SETUSER - istruzione |
SQL_DIAG_DFC_SS_SET_XCTLVL | Istruzione SET TRANSACTION ISOLATION LEVEL |
SQL_DIAG_DFC_SS_SHUTDOWN | Istruzione SHUTDOWN |
SQL_DIAG_DFC_SS_TRANS_BEGIN | Istruzione BEGIN TRAN |
SQL_DIAG_DFC_SS_TRANS_COMMIT | Istruzione COMMIT TRAN |
SQL_DIAG_DFC_SS_TRANS_PREPARE | Preparazione al commit di una transazione distribuita |
SQL_DIAG_DFC_SS_TRANS_ROLLBACK | Istruzione ROLLBACK TRAN |
SQL_DIAG_DFC_SS_TRANS_SAVE | Istruzione SAVE TRAN |
SQL_DIAG_DFC_SS_TRUNCATE_TABLE | TRUNCATE TABLE - istruzione |
SQL_DIAG_DFC_SS_UPDATE_STATISTICS | UPDATE STATISTICS - istruzione |
SQL_DIAG_DFC_SS_UPDATETEXT | UPDATETEXT, istruzione |
SQL_DIAG_DFC_SS_USE | USE - istruzione |
SQL_DIAG_DFC_SS_WAITFOR | Istruzione per il controllo di flusso WAITFOR |
SQL_DIAG_DFC_SS_WRITETEXT | Istruzione WRITETEXT |
SQLGetDiagField e parametri con valori di tabella
SQLGetDiagField può essere usato per recuperare due campi di diagnostica: SQL_DIAG_SS_TABLE_COLUMN_NUMBER e SQL_DIAG_SS_TABLE_ROW_NUMBER. Tali campi consentono di identificare il valore che ha generato l'errore o l'avviso associato al record di diagnostica.
Per altre informazioni sui parametri con valori di tabella, vedere Parametri con valori di tabella (ODBC).
Vedi anche
Funzione SQLGetDiagField
Dettagli di implementazione dell'API ODBC