Compartilhar via


SQLGetDiagField

O driver ODBC do SQL Server Native Client especifica os campos de diagnósticos adicionais a seguir para SQLGetDiagField. Esses campos suportam relatórios bem-elaborados de erros para os aplicativos do SQL Server e estão disponíveis em todos os registros de diagnóstico gerados em identificadores de conexão conectados ODBC 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 mais 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. Pode ser determinado chamando SQLGetInfo que solicita o valor de 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.

Campos de diagnóstico específicos do SQL Server que contêm dados de caractere, SQL_DIAG_SS_PROCNAME e SQL_DIAG_SS_SRVNAME, retornam esses dados para o cliente como cadeia de caracteres com terminação nula, 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 informa os códigos de função dinâmicos adicionais a seguir que identificam a última instrução do SQL Server tentada. 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 de banco de dados trunc. log on chkpt. estiver ativa.

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 Parâmetros com valor de tabela (ODBC).

Consulte também

Conceitos

Detalhes de implementação da API ODBC

Outros recursos

Função SQLGetDiagField