SQLGetDiagField
Il driver ODBC di SQL Server Native Client specifica i campi di diagnostica aggiuntivi seguenti per SQLGetDiagField. Questi campi supportano la segnalazione dettagliata degli errori per le applicazioni SQL Server e sono disponibili in tutti i record di diagnostica generati negli handle di istruzione ODBC e di connessione ODBC collegati. 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 di 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. |
I campi di diagnostica specifici di SQL Server contenenti dati caratteri, SQL_DIAG_SS_PROCNAME e SQL_DIAG_SS_SRVNAME, restituiscono i dati in questione al cliente come stringhe Unicode, ANSI o con terminazione Null. 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 dinamica aggiuntivi seguenti che identificano l'ultima istruzione 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 |
Istruzione ALTER DATABASE |
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 |
Istruzione CREATE PROCEDURE |
SQL_DIAG_DFC_SS_CREATE_RULE |
Istruzione CREATE RULE |
SQL_DIAG_DFC_SS_CREATE_TRIGGER |
Istruzione CREATE TRIGGER |
SQL_DIAG_DFC_SS_CURSOR_DECLARE |
Istruzione DECLARE CURSOR |
SQL_DIAG_DFC_SS_CURSOR_OPEN |
Istruzione OPEN |
SQL_DIAG_DFC_SS_CURSOR_FETCH |
Istruzione FETCH |
SQL_DIAG_DFC_SS_CURSOR_CLOSE |
Istruzione CLOSE |
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR |
Istruzione DEALLOCATE |
SQL_DIAG_DFC_SS_DBCC |
Istruzione DBCC |
SQL_DIAG_DFC_SS_DENY |
Istruzione DENY |
SQL_DIAG_DFC_SS_DROP_DATABASE |
Istruzione DROP DATABASE |
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. Viene restituito anche per un'istruzione CHECKPOINT se è attivata l'opzione di database trunc. log on chkpt.. |
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 |
Istruzione SELECT INTO |
SQL_DIAG_DFC_SS_SET |
Istruzione SET (generica, tutte le opzioni) |
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT |
Istruzione SET IDENTITY_INSERT |
SQL_DIAG_DFC_SS_SET_ROW_COUNT |
Istruzione SET ROWCOUNT |
SQL_DIAG_DFC_SS_SET_STATISTICS |
Istruzione SET STATISTICS IO o SET STATISTICS TIME |
SQL_DIAG_DFC_SS_SET_TEXTSIZE |
Istruzione SET TEXTSIZE |
SQL_DIAG_DFC_SS_SETUSER |
Istruzione SETUSER |
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 |
Istruzione TRUNCATE TABLE |
SQL_DIAG_DFC_SS_UPDATE_STATISTICS |
Istruzione UPDATE STATISTICS |
SQL_DIAG_DFC_SS_UPDATETEXT |
Istruzione UPDATETEXT |
SQL_DIAG_DFC_SS_USE |
Istruzione USE |
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 utilizzato per recuperare due campi di diagnostica, ovvero 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 ulteriori informazioni sui parametri con valori di tabella, vedere Parametri con valori di tabella (ODBC).
Vedere anche