Funzione SQLCompleteAsync

Conformità
Versione introdotta: Conformità agli standard ODBC 3.8: Nessuno

Riepilogo
SQLCompleteAsync può essere usato per determinare quando una funzione asincrona viene completata usando l'elaborazione basata su notifica o polling. Per altre informazioni sulle operazioni asincrone, vedere Esecuzione asincrona.

SQLCompleteAsync viene implementato solo in Gestione driver ODBC.

In modalità di elaborazione asincrona basata su notifica, è necessario chiamare SQLCompleteAsync dopo che Gestione driver genera l'oggetto evento usato per la notifica. SQLCompleteAsync completa l'elaborazione asincrona e la funzione asincrona genererà un codice restituito.

In modalità di elaborazione asincrona basata sul polling, SQLCompleteAsync è un'alternativa alla chiamata alla funzione asincrona originale, senza dover specificare gli argomenti nella chiamata di funzione asincrona originale. SQLCompleteAsync può essere usato indipendentemente dal fatto che la libreria di cursori ODBC sia abilitata.

Sintassi

  
SQLRETURN SQLCompleteAsync(  
      SQLSMALLINT HandleType,  
      SQLHANDLE   Handle,  
      RETCODE *   AsyncRetCodePtr);  

Argomenti

HandleType
[Input] Tipo dell'handle in cui completare l'elaborazione asincrona. I valori validi sono SQL_HANDLE_DBC o SQL_HANDLE_STMT.

Handle
[Input] Handle in cui completare l'elaborazione asincrona. Se Handle non è un handle valido del tipo specificato da HandleType, SQLCompleteAsync restituisce SQL_INVALID_HANDLE.

Se Handle non è un handle valido del tipo specificato da HandleType, SQLCompleteAsync restituisce SQL_INVALID_HANDLE.

AsyncRetCodePtr
[Output] Puntatore a un buffer che conterrà il codice restituito dell'API asincrona. Se AsyncRetCodePtr è NULL, SQLCompleteAsync restituisce SQL_ERROR.

Resi

SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA o SQL_INVALID_HANDLE.

Diagnostica

Se SQLCompleteAsync restituisce SQL_SUCCESS, un'applicazione deve ottenere il codice restituito della funzione asincrona dal buffer a cui punta AsyncRetCodePtr. L'oggetto SQLSTATE associato, se presente, può essere ottenuto chiamando SQLGetDiagRec con handleType di SQL_HANDLE_STMT e un handle di istruzione o handle HandleType di SQL_HANDLE_DBC e un handle di connessione. Tali record di diagnostica sono associati alla funzione asincrona, non a questa funzione SQLCompleteAsync .

SQLCompleteAsync restituisce un codice diverso da SQL_SUCCESS per indicare che SQLCompleteAsync non viene chiamato correttamente. IN questo caso SQLCompleteAsync non inserirà alcun record di diagnostica. I codici restituiti possibili sono:

  • SQL_INVALID_HANDLE: l'handle indicato da HandleType e Handle non è un handle valido.

  • SQL_ERROR: AsyncRetCodePtr è NULL o l'elaborazione asincrona non è abilitata nell'handle.

  • SQL_NO_DATA: in modalità di notifica, un'operazione asincrona non è in corso o Gestione driver non ha informato l'applicazione. In modalità di polling, un'operazione asincrona non è in corso.

Commenti

In modalità di elaborazione asincrona basata sul polling, AsyncRetCodePtr potrebbe essere SQL_STILL_EXECUTING quando SQLCompleteAsync restituisce SQL_SUCCESS. L'applicazione deve continuare a eseguire il polling finché AsyncRetCodePtr non è SQL_STILL_EXECUTING. In modalità di elaborazione asincrona basata su notifica, AsyncRetCodePtr non verrà mai SQL_STILL_EXECUTING.

Vedi anche

Esecuzione asincrona (metodo di polling)