Compartir vía


ISSAbort::Abort (proveedor OLE DB de Native Client)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Importante

SQL Server Native Client (a menudo abreviado SNAC) se ha quitado de SQL Server 2022 (16.x) y SQL Server Management Studio 19 (SSMS). Para nuevos trabajos de desarrollo, no se recomiendan ni el proveedor OLE DB de SQL Server Native Client (SQLNCLI o SQLNCLI11) ni el proveedor OLE DB de Microsoft para SQL Server (SQLOLEDB) heredado. Cambie al nuevo Controlador Microsoft OLE DB para SQL Server de ahora en adelante.

Cancela el conjunto de filas actual y los comandos en lotes asociados al comando actual.

La interfaz ISSAbort, que se expone en el proveedor OLE DB de SQL Server Native Client, proporciona el método ISSAbort::Abort que se usa para cancelar el conjunto de filas actual más los comandos por lotes con el comando que generó inicialmente el conjunto de filas y que aún no han completado la ejecución.

ISSAbort es una interfaz específica del proveedor de SQL Server Native Client disponible mediante QueryInterface en el objeto IMultipleResults devuelto por ICommand::Execute o IOpenRowset::OpenRowset.

Sintaxis

  
HRESULT Abort(void);  

Comentarios

Si el comando que se anula se encuentra en un procedimiento almacenado, la ejecución del procedimiento almacenado (y los procedimientos que hubieran llamado a ese procedimiento) se finalizarán, así como el lote de comandos que contiene la llamada al procedimiento almacenado. Si el servidor está en proceso de transferir un conjunto de resultados al cliente, se detendrá. Si el cliente no desea consumir un conjunto de resultados, la llamada a ISSAbort::Abort antes de liberar el conjunto de filas acelerará la liberación del conjunto de filas, pero si hay una transacción abierta y XACT_ABORT está establecido en ON, la transacción se revertirá al llamar a ISSAbort::Abort .

Después de que ISSAbort::Abort devuelva S_OK, la interfaz IMultipleResults asociada inicia un estado inutilizable y devuelve DB_E_CANCELED a todas las llamadas a método (excepto en los métodos que define la interfaz IUNKNOWN) hasta que se libera. Si se ha obtenido una interfaz IRowset de IMultipleResults antes de una llamada a Anular, también inicia un estado inutilizable y devuelve DB_E_CANCELED a todas las llamadas a método (excepto en los métodos que define la interfaz IUNKNOWN e IRowset::ReleaseRows) hasta que se libera después de una llamada correcta a ISSAbort::Abort.

Nota:

A partir de SQL Server 2005 (9.x), si el estado del servidor XACT_ABORT está activado, la ejecución de ISSAbort::Abort finalizará y revertirá cualquier transacción implícita o explícita actual cuando esté conectada a SQL Server. Las versiones anteriores de SQL Server no anularán la transacción actual.

Argumentos

Ninguno.

Valores de código de retorno

S_OK
El método ISSAbort::Abort devuelve S_OK si el lote se ha cancelado y DB_E_CANTCANCEL de lo contrario. Si el lote ya se había cancelado, se devuelve DB_E_CANCELED.

DB_E_CANCELED
El lote ya se ha cancelado.

DB_E_CANTCANCEL
El lote no se ha cancelado.

E_FAIL
Se produjo un error específico del proveedor; para obtener información detallada, use la interfaz ISQLServerErrorInfo.

E_UNEXPECTED
No se esperaba la llamada al método. Por ejemplo, el objeto está en un estado zombi porque ya se ha llamado a ISSAbort::Abort .

E_OUTOFMEMORY
Error de memoria insuficiente.

Consulte también

ISSAbort (OLE DB)