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