Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 registro de diagnóstico | Descrição |
|---|---|
| SQL_DIAG_SS_LINE | Relata o número de linha de um procedimento armazenado gerando um erro. O valor de SQL_DIAG_SS_LINE será significativo somente se SQL_DIAG_SS_PROCNAME retornar um valor. O valor é retornado como um inteiro sem sinal de 16 bits. |
| 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 assinado de 32 bits. |
| SQL_DIAG_SS_PROCNAME | 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 gravidade da mensagem de erro associada. O valor é retornado como um inteiro assinado de 32 bits. |
| 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 ao cliente como cadeias de caracteres anuladas, ANSI ou Unicode. Se necessário, a contagem de caracteres deve ser ajustada pela largura do caractere. Como alternativa, um tipo de dados C portátil, como TCHAR ou SQLTCHAR, pode ser usado para garantir o comprimento correto da variável 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âmica é retornado no cabeçalho (registro 0) do conjunto de registros de diagnóstico e, portanto, está disponível em cada execução (bem-sucedida ou não).
| Código de função dinâmica | Fonte |
|---|---|
| SQL_DIAG_DFC_SS_ALTER_DATABASE | instrução ALTER DATABASE |
| SQL_DIAG_DFC_SS_CHECKPOINT | Instrução CHECKPOINT |
| SQL_DIAG_DFC_SS_CONDITION | Erro 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 será retornado para uma instrução CHECKPOINT se a opção trunc. log no chkpt. database option is on. |
| SQL_DIAG_DFC_SS_GOTO | Instrução goto control-of-flow |
| 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 return control-of-flow |
| 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 E/S 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 waitfor control-of-flow |
| SQL_DIAG_DFC_SS_WRITETEXT | Instrução WRITETEXT |
Parâmetros sqlGetDiagField e Table-Valued
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 causou o erro ou aviso associado 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).
Consulte Também
Função SQLGetDiagField
Detalhes da implementação da API do ODBC