Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Conformidade
Versão Introduzida: Conformidade com as Normas ODBC 3.8: Nenhuma
Summary
O SQLCompleteAsync pode ser usado para determinar quando uma função assíncrona está completa, utilizando processamento baseado em notificações ou sondagens. Para mais informações sobre operações assíncronas, veja Execução Assíncrona.
O SQLCompleteAsync é implementado apenas no ODBC Driver Manager.
No modo de processamento assíncrono baseado em notificações, o SQLCompleteAsync deve ser chamado depois de o Gestor de Drivers levantar o objeto de evento usado para notificação. SQLCompleteAsync completa o processamento assíncrono e a função assíncrona gera um código de retorno.
No modo de processamento assíncrono baseado em polling, o SQLCompleteAsync é uma alternativa à chamada da função assíncrona original, sem necessidade de especificar os argumentos na chamada original da função assíncrona. O SQLCompleteAsync pode ser usado independentemente de a Biblioteca de Cursores ODBC estar ativada.
Syntax
SQLRETURN SQLCompleteAsync(
SQLSMALLINT HandleType,
SQLHANDLE Handle,
RETCODE * AsyncRetCodePtr);
Arguments
HandleType
[Entrada] O tipo de alavanca para completar o processamento assíncrono. Os valores válidos são SQL_HANDLE_DBC ou SQL_HANDLE_STMT.
Manípulo
[Entrada] A alavanca para completar o processamento assíncrono. Se o Handle não for um handle válido do tipo especificado pelo HandleType, o SQLCompleteAsync devolve SQL_INVALID_HANDLE.
Se o Handle não for um handle válido do tipo especificado pelo HandleType, o SQLCompleteAsync devolve SQL_INVALID_HANDLE.
AsyncRetCodePtr
[Saída] Apontador para um buffer que conterá o código de retorno da API assíncrona. Se AsyncRetCodePtr for NULL, SQLCompleteAsync devolve SQL_ERROR.
Devoluções
SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA ou SQL_INVALID_HANDLE.
Diagnósticos
Se o SQLCompleteAsync devolver SQL_SUCCESS, uma aplicação deve obter o código de retorno da função assíncrona do buffer apontado pelo AsyncRetCodePtr. O SQLSTATE associado, se existir, pode ser obtido chamando SQLGetDiagRec com um HandleType de SQL_HANDLE_STMT e um handle de instrução ou um HandleType de SQL_HANDLE_DBC e um handle de ligação. Esses registos de diagnóstico estão associados à função assíncrona, não a esta função SQLCompleteAssíncrona .
O SQLCompleteAsync devolve um código diferente de SQL_SUCCESS para indicar que o SQLCompleteAsync não é chamado corretamente. Neste caso, o SQLCompleteAsync não publicará qualquer registo de diagnóstico. Os possíveis códigos de retorno são:
SQL_INVALID_HANDLE: O handle indicado por HandleType e Handle não é um handle válido.
SQL_ERROR: O AsyncRetCodePtr é NULL ou o processamento assíncrono não está ativado no handle.
SQL_NO_DATA: Em modo de notificação, nenhuma operação assíncrona está em curso ou o Gestor de Drivers não notificou a aplicação. Em modo de sondagem, não está em curso uma operação assíncrona.
Comments
No modo de processamento assíncrono baseado em polling, o AsyncRetCodePtr pode ser SQL_STILL_EXECUTING quando o SQLCompleteAsync devolve SQL_SUCCESS. A aplicação deve continuar a fazer sondagens até que o AsyncRetCodePtr não seja SQL_STILL_EXECUTING. Em modo de processamento assíncrono baseado em notificações, o AsyncRetCodePtr nunca será SQL_STILL_EXECUTING.