ISSAbort::Abort (provedor OLE DB do cliente nativo)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)
Importante
O SQL Server Native Client (geralmente abreviado como SNAC) foi removido do SQL Server 2022 (16.x) e do SSMS (SQL Server Management Studio) 19. O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o Provedor OLE DB herdado da Microsoft para o SQL Server (SQLOLEDB) não são recomendados para um novo desenvolvimento. Alterne para o novo Driver do Microsoft OLE DB para SQL Server (MSOLEDBSQL) no futuro.
Cancela o conjunto de linhas atual, além de todos os comandos em lote associados ao comando atual.
A interface ISSAbort , que é exposta no provedor OLE DB do SQL Server Native Client, fornece o método ISSAbort::Abort que é usado para cancelar o conjunto de linhas atual, além de todos os comandos em lote com o comando que gerou inicialmente o conjunto de linhas e que ainda não concluíram a execução.
ISSAbort é uma interface específica do provedor do SQL Server Native Client disponível usando QueryInterface no objeto IMultipleResults retornado por ICommand::Execute ou IOpenRowset::OpenRowset.
Sintaxe
HRESULT Abort(void);
Comentários
Se o comando que está sendo anulado estiver em um procedimento armazenado, a execução do procedimento armazenado (e todos os procedimentos que chamaram esse procedimento) será encerrada, bem como o lote de comandos que contém a chamada de procedimento armazenado. Se o servidor estiver no processo de transferir um conjunto de resultados para o cliente, ele será interrompido. Se o cliente não desejar consumir um conjunto de resultados, chamar ISSAbort::Abort antes de liberar o conjunto de linhas agilizará a liberação do conjunto de resultados, mas se houver uma transação aberta e XACT_ABORT estiver ON, a transação será revertida quando ISSAbort::Abort for chamado.
Depois que ISSAbort::Abort retorna S_OK, a interface IMultipleResults associada entra em um estado inutilizável e retorna DB_E_CANCELED para todas as chamadas de método (com exceção dos métodos definidos pela interface IUnknown) até que seja liberada. Se um IRowset foi obtido de IMultipleResults antes de uma chamada para Abort, também entrará em um estado inutilizável e retornará DB_E_CANCELED para todas as chamadas de método (com exceção dos métodos definidos pela interface IUnknown e IRowset::ReleaseRows) até que seja liberado após uma chamada bem-sucedida para ISSAbort::Abort.
Observação
A partir do SQL Server 2005 (9.x), se o estado XACT_ABORT do servidor for ON, a execução de ISSAbort::Abort encerrará e reverterá qualquer transação implícita ou explícita atual quando conectada ao SQL Server. Versões anteriores do SQL Server não anularão a transação atual.
Argumentos
Nenhum.
Valores do código de retorno
S_OK
O método ISSAbort::Abort retorna S_OK se o lote foi cancelado e DB_E_CANTCANCEL em caso contrário. Se o lote já foi cancelado, DB_E_CANCELED será retornado.
DB_E_CANCELED
O lote já foi cancelado.
DB_E_CANTCANCEL
O lote não foi cancelado.
E_FAIL
Um erro específico do provedor ocorreu. Para obter informações detalhadas, use a interface ISQLServerErrorInfo.
E_UNEXPECTED
A chamada para o método era inesperada. Por exemplo, o objeto está em um estado de zumbi porque ISSAbort::Abort já foi chamado.
E_OUTOFMEMORY
Erro de memória insuficiente.