Partilhar via


ISSAbort::Abort (provedor OLE DB do cliente nativo)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada SQL do Azure do Azure Synapse AnalyticsAnalytics Platform System (PDW)

Importante

O SQL Server Native Client (geralmente abreviado SNAC) foi removido do SQL Server 2022 (16.x) e do SQL Server Management Studio 19 (SSMS). O provedor OLE DB do SQL Server Native Client (SQLNCLI ou SQLNCLI11) e o provedor Microsoft OLE DB herdado para SQL Server (SQLOLEDB) não são recomendados para novos desenvolvimentos. Mude para o novo Microsoft OLE DB Driver (MSOLEDBSQL) para SQL Server daqui em diante.

Cancela o conjunto de linhas atual mais quaisquer 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 mais quaisquer 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);  

Observações

Se o comando que está sendo anulado estiver em um procedimento armazenado, a execução do procedimento armazenado (e de quaisquer procedimentos que tenham chamado 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 transferência de um conjunto de resultados para o cliente, isso será interrompido. Se o cliente não quiser consumir um conjunto de resultados, chamar ISSAbort::Abort antes de liberar o conjunto de linhas acelerará a liberação do conjunto de linhas, 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 a todas as chamadas de método (exceto para métodos definidos pela interface IUnknown ) até que seja liberada. Se um IRowset tiver sido obtido de IMultipleResults antes de uma chamada para Abort, ele também entra em um estado inutilizável e retorna DB_E_CANCELED a todas as chamadas de método (exceto para 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 estiver ATIVADO, a execução de ISSAbort::Abort encerrará e reverterá qualquer transação implícita ou explícita atual quando conectada ao SQL Server. As versões anteriores do SQL Server não anularão a transação atual.

Arguments

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 caso contrário. Se o lote já tiver sido cancelado, DB_E_CANCELED será devolvido.

DB_E_CANCELED
O lote já foi cancelado.

DB_E_CANTCANCEL
O lote não foi cancelado.

E_FAIL
Ocorreu um erro específico do fornecedor; para obter informações detalhadas, use a interface ISQLServerErrorInfo .

E_UNEXPECTED
A chamada para o método foi inesperada. Por exemplo, o objeto está em um estado zumbi porque ISSAbort::Abort já foi chamado.

E_OUTOFMEMORY
Erro de falta de memória.