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 assinatura. |
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 |
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 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 (adicionados em SQL Server 2008) 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