ISSAsynchStatus::Abort (provider OLE DB di Native Client)

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

Importante

SQL Server Native Client (spesso abbreviato SNAC) è stato rimosso da SQL Server 2022 (16.x) e da SQL Server Management Studio 19 (SSMS). Il provider OLE DB di SQL Server Native Client (SQLNCLI o SQLNCLI11) e il provider OLE DB legacy Microsoft per SQL Server (SQLOLEDB) non sono consigliati per lo sviluppo di nuove applicazioni. In futuro, passare al nuovo driver Microsoft OLE DB (MSOLEDBSQL) per SQL Server.

Annulla un'operazione di esecuzione asincrona.

Sintassi

  
HRESULT Abort(  
        HCHAPTER hChapter,  
        DBASYNCHOP eOperation);  

Argomenti

hChapter[in]
Handle del capitolo per il quale interrompere l'operazione. Se l'oggetto chiamato non è un oggetto set di righe o l'operazione non si applica a un capitolo, il chiamante deve impostare hChapter su DB_NULL_HCHAPTER.

eOperation[in]
Operazione da interrompere. Deve corrispondere al valore seguente:

DBASYNCHOP_OPEN: la richiesta di annullamento si applica all'apertura o al popolamento asincrono di un set di righe o all'inizializzazione asincrona di un oggetto origine dati.

Valori del codice restituito

S_OK
La richiesta di annullare l'operazione asincrona è stata elaborata. Questo non garantisce che l'operazione stessa sia stata annullata. Per determinare se è stata effettivamente annullata, il consumer deve chiamare ISSAsynchStatus::GetStatus e verificare DB_E_CANCELED. È tuttavia possibile che non venga restituito nella chiamata successiva.

DB_E_CANTCANCEL
Non è stato possibile annullare l'operazione asincrona.

DB_E_CANCELED
La richiesta di interrompere l'operazione asincrona è stata annullata durante le notifiche. L'operazione viene ancora eseguita in modo asincrono.

E_FAIL
Si è verificato un errore specifico del provider.

E_INVALIDARG
Il parametro hChapter non è DB_NULL_HCHAPTER o eOperation non è DBASYNCH_OPEN.

E_UNEXPECTED
ISSAsynchStatus::Abort è stato chiamato su un oggetto origine dati in cui IDBInitialize::Initialize non è stato chiamato o non è stato completato.

ISSAsynchStatus::Abort è stato chiamato su un oggetto origine dati in cui è stato chiamato IDBInitialize::Initialize , ma successivamente annullato prima dell'inizializzazione o timeout. L'oggetto origine dati non è ancora inizializzato.

ISSAsynchStatus::Abort è stato chiamato su un set di righe in cui È stato chiamato ITransaction::Commit o ITransaction::Abort in precedenza e il set di righe non è sopravvissuto al commit o all'interruzione ed è in uno stato zombie.

ISSAsynchStatus::Abort è stato chiamato su un set di righe annullato in modo asincrono nella fase di inizializzazione. Il set di righe si trova in uno stato non valido.

Osservazioni:

L'interruzione dell'inizializzazione di un set di righe o di un oggetto origine dati potrebbe lasciare il set di righe o l'oggetto origine dati in uno stato non valido e determinare la restituzione di E_UNEXPECTED da parte di tutti i metodi ad eccezione di IUnknown. Quando ciò accade, l'unica azione possibile per il consumer consiste nel rilasciare il set di righe o l'oggetto origine dati.

Se si chiama ISSAsynchStatus::Abort e si passa un valore per eOperation diverso da DBASYNCHOP_OPEN, viene restituito S_OK. Questo non implica che l'operazione sia stata completata o annullata.

Vedi anche

Esecuzione di operazioni asincrone