Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O provedor OLE DB do SQL Server Native Client define a interface de erro específica do provedor ISQLServerErrorInfo. A interface retorna mais detalhes sobre um erro do SQL Server e é valiosa quando as operações de execução de comando ou conjunto de linhas falham.
Há duas maneiras de obter acesso à interface ISQLServerErrorInfo .
O consumidor pode chamar IErrorRecords::GetCustomerErrorObject para obter um ponteiro ISQLServerErrorInfo , conforme mostrado no exemplo de código a seguir. (Não é necessário obter ISQLErrorInfo.) IsQLErrorInfo e ISQLServerErrorInfo são objetos de erro OLE DB personalizados, com ISQLServerErrorInfo sendo a interface a ser usada para obter informações de 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 maneira de obter um ponteiro ISQLServerErrorInfo é chamar o método QueryInterface em um ponteiro ISQLErrorInfo já obtido. Observe que, como ISQLServerErrorInfo contém um superconjunto das informações disponíveis no ISQLErrorInfo, faz sentido ir diretamente para ISQLServerErrorInfo por meio de GetCustomerErrorObject.
A interface ISQLServerErrorInfo expõe uma função membro, ISQLServerErrorInfo::GetErrorInfo. A função retorna um ponteiro para uma estrutura SSERRORINFO e um ponteiro para um buffer de cadeia de caracteres. Ambos os ponteiros fazem referência à 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 maneira.
| Membro | Descrição |
|---|---|
| pwszMessage | Mensagem de erro do SQL Server. Idêntico à cadeia de caracteres retornada em IErrorInfo::GetDescription. |
| pwszServer | Nome da instância do SQL Server para a sessão. |
| pwszProcedure | Se apropriado, o nome do procedimento no qual o erro se originou. Caso contrário, uma cadeia de caracteres vazia. |
| LNative | Número de erro nativo do SQL Server. Idêntico ao valor retornado no parâmetro plNativeError de ISQLErrorInfo::GetSQLInfo. |
| bState | Estado de uma mensagem de erro do SQL Server. |
| bClass | Severidade de uma mensagem de erro do SQL Server. |
| wLineNumber | Quando aplicável, o número de linha de um procedimento armazenado no qual o erro ocorreu. |