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