Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
O Driver OLE DB para SQL Server define a interface de erro específica do fornecedor, ISQLServerErrorInfo. A interface devolve mais detalhes sobre um erro do SQL Server e é valiosa quando a execução de comandos ou operações de rowset falham.
Existem duas formas de obter acesso à interface ISQLServerErrorInfo .
O consumidor pode chamar IErrorRecords::GetCustomerErrorObject para obter um ponteiro ISQLServerErrorInfo , conforme mostrado no seguinte exemplo de código. (Não é necessário obter ISQLErrorInfo.) Tanto ISQLErrorInfo como ISQLServerErrorInfo são objetos de erro personalizados do OLE DB, sendo ISQLServerErrorInfo a interface para obter informações sobre erros do servidor, incluindo detalhes como nome do procedimento e números de linha.
// Get the SQL Server custom error object.
if(FAILED(hr=pIErrorRecords->GetCustomErrorObject(
nRec, IID_ISQLServerErrorInfo,
(IUnknown**)&pISQLServerErrorErrorInfo)))
Outra forma de obter um ponteiro ISQLServerErrorInfo é chamar o método QueryInterface num ponteiro ISQLErrorInfo já obtido. Note que, como o ISQLServerErrorInfo contém um superconjunto da informação disponível do ISQLErrorInfo, faz sentido ir diretamente ao ISQLServerErrorInfo através do GetCustomerErrorObject.
A interface ISQLServerErrorInfo expõe uma função membro, ISQLServerErrorInfo::GetErrorInfo. A função devolve um ponteiro para uma estrutura SSERRORINFO e um ponteiro para um buffer de string. Ambos os ponteiros referenciam a memória que o consumidor deve desalocar usando o método IMalloc::Free .
Os membros da estrutura SSERRORINFO são interpretados pelo consumidor da seguinte forma.
| Membro | Description |
|---|---|
| pwszMessage | Mensagem de erro do SQL Server. Idêntico à string devolvida em IErrorInfo::GetDescription. |
| pwszServer | Nome da instância do SQL Server para a sessão. |
| pwszProcedimento | Se apropriado, o nome do procedimento em que o erro se originou. Caso contrário, um fio vazio. |
| Nativo | Número de erro nativo do SQL Server. Idêntico ao valor devolvido no parâmetro plNativeError do ISQLErrorInfo::GetSQLInfo. |
| bEstado | Estado de uma mensagem de erro do SQL Server. |
| Classe b | Gravidade de uma mensagem de erro do SQL Server. |
| wNúmero de Linha | Quando aplicável, o número de linha de um procedimento armazenado onde ocorreu o erro. |