SQLGetDiagField

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

O driver ODBC do SQL Server Native Client especifica os seguintes campos de diagnóstico adicionais para SQLGetDiagField. Esses campos dão suporte a relatórios de erros avançados para aplicativos do SQL Server e estão disponíveis em todos os registros de diagnóstico gerados em identificadores de conexão ODBC conectados e identificadores de instrução ODBC. Os campos são definidos em sqlncli.h.

Campo de registro de diagnóstico Descrição
SQL_DIAG_SS_LINE Informa o número da linha de um procedimento armazenado que gera um erro. O valor de SQL_DIAG_SS_LINE só será útil se SQL_DIAG_SS_PROCNAME retornar um valor. O valor é retornado como um inteiro de 16 bits sem-sinal.
SQL_DIAG_SS_MSGSTATE O estado de uma mensagem de erro. Para obter informações sobre o estado da mensagem de erro, consulte RAISERROR. O valor é retornado como um inteiro de 32 bits com assinatura.
SQL_DIAG_SS_PROCNAME O nome do procedimento armazenado que gera um erro, se apropriado. O valor é retornado como uma cadeia de caracteres. O comprimento da cadeia de caracteres (em caracteres) depende da versão do SQL Server. Ele pode ser determinado chamando SQLGetInfo solicitando o valor para SQL_MAX_PROCEDURE_NAME_LEN.
SQL_DIAG_SS_SEVERITY O nível de severidade da mensagem de erro associada. O valor é retornado como um inteiro de 32 bits com assinatura.
SQL_DIAG_SS_SRVNAME O nome do servidor no qual o erro ocorreu. O valor é retornado como uma cadeia de caracteres. O comprimento da cadeia de caracteres (em caracteres) é definido pela macro SQL_MAX_SQLSERVERNAME em sqlncli.h.

Os campos de diagnóstico específicos do SQL Server que contêm dados de caracteres, SQL_DIAG_SS_PROCNAME e SQL_DIAG_SS_SRVNAME, retornam esses dados ao cliente como cadeias de caracteres terminadas em nulo, ANSI ou Unicode. Se necessário, a contagem de caracteres deve ser ajustada de acordo com a largura do caractere. Como opção, um tipo de dados C portátil, como TCHAR ou SQLTCHAR, pode ser usado para garantir o comprimento variável correto do programa.

O driver ODBC do SQL Server Native Client relata os seguintes códigos de função dinâmica adicionais que identificam a última tentativa de instrução do SQL Server. O código de função dinâmico é retornado no cabeçalho (record 0) do registro de diagnóstico definido e, portanto, está disponível em cada execução (bem-sucedida ou não).

Código de função dinâmico Origem
SQL_DIAG_DFC_SS_ALTER_DATABASE instrução ALTER DATABASE
SQL_DIAG_DFC_SS_CHECKPOINT Instrução CHECKPOINT
SQL_DIAG_DFC_SS_CONDITION O erro ocorreu nas cláusulas WHERE ou HAVING de uma instrução.
SQL_DIAG_DFC_SS_CREATE_DATABASE Instrução CREATE DATABASE
SQL_DIAG_DFC_SS_CREATE_DEFAULT Instrução CREATE DEFAULT
SQL_DIAG_DFC_SS_CREATE_PROCEDURE Instrução CREATE PROCEDURE
SQL_DIAG_DFC_SS_CREATE_RULE Instrução CREATE RULE
SQL_DIAG_DFC_SS_CREATE_TRIGGER instrução CREATE TRIGGER
SQL_DIAG_DFC_SS_CURSOR_DECLARE Instrução DECLARE CURSOR
SQL_DIAG_DFC_SS_CURSOR_OPEN Instrução OPEN
SQL_DIAG_DFC_SS_CURSOR_FETCH Instrução FETCH
SQL_DIAG_DFC_SS_CURSOR_CLOSE Instrução CLOSE
SQL_DIAG_DFC_SS_DEALLOCATE_CURSOR Instrução DEALLOCATE
SQL_DIAG_DFC_SS_DBCC Instrução DBCC
SQL_DIAG_DFC_SS_DENY instrução DENY
SQL_DIAG_DFC_SS_DROP_DATABASE instrução DROP DATABASE
SQL_DIAG_DFC_SS_DROP_DEFAULT Instrução DROP DEFAULT
SQL_DIAG_DFC_SS_DROP_PROCEDURE Instrução DROP PROCEDURE
SQL_DIAG_DFC_SS_DROP_RULE Instrução DROP RULE
SQL_DIAG_DFC_SS_DROP_TRIGGER instrução DROP TRIGGER
SQL_DIAG_DFC_SS_DUMP_DATABASE Instrução BACKUP ou DUMP DATABASE
SQL_DIAG_DFC_SS_DUMP_TABLE Instrução DUMP TABLE
SQL_DIAG_DFC_SS_DUMP_TRANSACTION Instrução BACKUP ou DUMP TRANSACTION. Também retornado para uma instrução CHECKPOINT se a opção trunc. log on chkpt. database estiver ativada.
SQL_DIAG_DFC_SS_GOTO Instrução de controle de fluxo GOTO
SQL_DIAG_DFC_SS_INSERT_BULK Instrução INSERT BULK
SQL_DIAG_DFC_SS_KILL Instrução KILL
SQL_DIAG_DFC_SS_LOAD_DATABASE Instrução LOAD ou RESTORE DATABASE
SQL_DIAG_DFC_SS_LOAD_HEADERONLY Instrução LOAD ou RESTORE HEADERONLY
SQL_DIAG_DFC_SS_LOAD_TABLE Instrução LOAD TABLE
SQL_DIAG_DFC_SS_LOAD_TRANSACTION Instrução LOAD ou RESTORE TRANSACTION
SQL_DIAG_DFC_SS_PRINT instrução PRINT
SQL_DIAG_DFC_SS_RAISERROR instrução RAISERROR
SQL_DIAG_DFC_SS_READTEXT Instrução READTEXT
SQL_DIAG_DFC_SS_RECONFIGURE Instrução RECONFIGURE
SQL_DIAG_DFC_SS_RETURN Instrução de controle de fluxo RETURN
SQL_DIAG_DFC_SS_SELECT_INTO instrução SELECT INTO
SQL_DIAG_DFC_SS_SET Instrução SET (genérica, todas as opções)
SQL_DIAG_DFC_SS_SET_IDENTITY_INSERT Instrução SET IDENTITY_INSERT
SQL_DIAG_DFC_SS_SET_ROW_COUNT Instrução SET ROWCOUNT
SQL_DIAG_DFC_SS_SET_STATISTICS Instruções SET STATISTICS IO ou SET STATISTICS TIME
SQL_DIAG_DFC_SS_SET_TEXTSIZE Instrução SET TEXTSIZE
SQL_DIAG_DFC_SS_SETUSER Instrução SETUSER
SQL_DIAG_DFC_SS_SET_XCTLVL Instrução SET TRANSACTION ISOLATION LEVEL
SQL_DIAG_DFC_SS_SHUTDOWN Instrução SHUTDOWN
SQL_DIAG_DFC_SS_TRANS_BEGIN Instrução BEGIN TRAN
SQL_DIAG_DFC_SS_TRANS_COMMIT Instrução COMMIT TRAN
SQL_DIAG_DFC_SS_TRANS_PREPARE Preparar para confirmar uma transação distribuída
SQL_DIAG_DFC_SS_TRANS_ROLLBACK Instrução ROLLBACK TRAN
SQL_DIAG_DFC_SS_TRANS_SAVE Instrução SAVE TRAN
SQL_DIAG_DFC_SS_TRUNCATE_TABLE Instrução TRUNCATE TABLE
SQL_DIAG_DFC_SS_UPDATE_STATISTICS Instrução UPDATE STATISTICS
SQL_DIAG_DFC_SS_UPDATETEXT instrução UPDATETEXT
SQL_DIAG_DFC_SS_USE instrução USE
SQL_DIAG_DFC_SS_WAITFOR Instrução de controle de fluxo WAITFOR
SQL_DIAG_DFC_SS_WRITETEXT Instrução WRITETEXT

SQLGetDiagField e parâmetros com valor de tabela

SQLGetDiagField pode ser usado para recuperar dois campos de diagnóstico: SQL_DIAG_SS_TABLE_COLUMN_NUMBER e SQL_DIAG_SS_TABLE_ROW_NUMBER. Esses campos ajudam a determinar qual valor gerou o erro ou a mensagem de advertência associada ao registro de diagnóstico.

Para obter mais informações sobre parâmetros com valor de tabela, consulte ODBC (Parâmetros com valor de tabela).

Confira também

Função SQLGetDiagField
Detalhes da implementação da API do ODBC