Compartilhar via


Função SQLCompleteAsync

Conformidade
Versão introduzida: Conformidade de padrões do ODBC 3.8: Nenhum

Resumo
SQLCompleteAsync pode ser usado para determinar quando uma função assíncrona é concluída usando processamento baseado em notificação ou sondagem. Para obter mais informações sobre operações assíncronas, consulte Execução assíncrona.

SQLCompleteAsync só é implementado no Gerenciador de Driver ODBC.

No modo de processamento assíncrono baseado em notificação, SQLCompleteAsync deve ser chamado depois que o Gerenciador de Driver aciona o objeto de evento usado para notificação. SQLCompleteAsync conclui o processamento assíncrono e a função assíncrona gerará um código de retorno.

No modo de processamento assíncrono baseado em sondagem, SQLCompleteAsync é uma alternativa para chamar a função assíncrona original, sem a necessidade de especificar os argumentos na chamada de função assíncrona original. SQLCompleteAsync pode ser usado independentemente de a Biblioteca de Cursores ODBC estar habilitada.

Sintaxe

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

Argumentos

Handletype
[Entrada] O tipo do identificador no qual concluir o processamento assíncrono. Os valores válidos são SQL_HANDLE_DBC ou SQL_HANDLE_STMT.

Handle
[Entrada] O identificador no qual concluir o processamento assíncrono. Se Handle não for um identificador válido do tipo especificado por HandleType, SQLCompleteAsync retornará SQL_INVALID_HANDLE.

Se Handle não for um identificador válido do tipo especificado por HandleType, SQLCompleteAsync retornará SQL_INVALID_HANDLE.

AsyncRetCodePtr
[Saída] Ponteiro para um buffer que conterá o código de retorno da API assíncrona. Se AsyncRetCodePtr for NULL, SQLCompleteAsync retornará SQL_ERROR.

Retornos

SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA ou SQL_INVALID_HANDLE.

Diagnósticos

Se SQLCompleteAsync retornar SQL_SUCCESS, um aplicativo deverá obter o código de retorno da função assíncrona do buffer apontado por AsyncRetCodePtr. O SQLSTATE associado, se houver, pode ser obtido chamando SQLGetDiagRec com um HandleType de SQL_HANDLE_STMT e um identificador de instrução ou um HandleType de SQL_HANDLE_DBC e um identificador de conexão. Esses registros de diagnóstico estão associados à função assíncrona, não à função SQLCompleteAsync .

SQLCompleteAsync retorna um código diferente de SQL_SUCCESS para indicar que SQLCompleteAsync não é chamado corretamente. SQLCompleteAsync não postará nenhum registro de diagnóstico nesse caso. Os códigos de retorno possíveis são:

  • SQL_INVALID_HANDLE: o identificador indicado por HandleType e Handle não é um identificador válido.

  • SQL_ERROR: AsyncRetCodePtr é NULL ou o processamento assíncrono não está habilitado no identificador.

  • SQL_NO_DATA: no modo de notificação, uma operação assíncrona não está em andamento ou o Gerenciador de Driver não notificou o aplicativo. No modo de sondagem, uma operação assíncrona não está em andamento.

Comentários

No modo de processamento assíncrono baseado em sondagem, AsyncRetCodePtr pode ser SQL_STILL_EXECUTING quando SQLCompleteAsync retorna SQL_SUCCESS. O aplicativo deve continuar sondando até que AsyncRetCodePtr não seja SQL_STILL_EXECUTING. No modo de processamento assíncrono baseado em notificação, AsyncRetCodePtr nunca será SQL_STILL_EXECUTING.

Consulte Também

Execução assíncrona (método de sondagem)