SQLGetDiagField
O driver ODBC 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 SQL Server e estão disponíveis em todos os registros 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. |
SQL Server campos de diagnóstico específicos que contêm dados de caracteres, 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 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 SQL Server Native Client relata os seguintes códigos de função dinâmica adicionais que identificam a última tentativa SQL Server instrução. 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 | Fonte |
---|---|
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 option is on. |
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).