Partilhar via


Função SQLAsyncNotificationCallback

Compatibilidade
Versão introduzida: ODBC 3.8

Conformidade com padrões: Nenhuma

Resumo
SQLAsyncNotificationCallback permite que um driver retorne ao Gerenciador de Driver quando houver algum progresso para a operação assíncrona atual depois que o driver retornar SQL_STILL_EXECUTING. SQLAsyncNotificationCallback só pode ser chamado pelo driver.

Os drivers não chamam SQLAsyncNotificationCallback com o nome da função SQLAsyncNotificationCallback. Em vez disso, o Gerenciador de Driver passa um ponteiro de função a um driver como o valor do atributo SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK ou SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK do identificador de conexão ou identificador de instrução correspondente, respectivamente. Diferentes identificadores podem receber valores de ponteiro de função diferentes. O tipo do ponteiro de função é definido como SQL_ASYNC_NOTIFICATION_CALLBACK.

SQLAsyncNotificationCallback é thread-safe. Um driver pode optar por usar vários threads chamando SQLAsyncNotificationCallback em diferentes identificadores simultaneamente.

Sintaxe

typedef SQLRETURN (SQL_API *SQL_ASYNC_NOTIFICATION_CALLBACK)(  
   SQLPOINTER pContex,   
   BOOL fLast);  

Argumentos

pContex
Ponteiro para uma estrutura de dados definida pelo Gerenciador de Driver . O valor é passado para o driver via SQLSetConnectAttr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) or SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT). O driver não tem acesso ao valor.

fLast
Usado por um driver para indicar que essa invocação de função de retorno de chamada é a última para a operação assíncrona atual. O driver retornará um código de retorno diferente de SQL_STILL_EXECUTING quando o Gerenciador de Driver chamar a função novamente. O Gerenciador de Driver pode usar essas informações, por exemplo, para informar antecipadamente ao aplicativo que a operação assíncrona será concluída.

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

Retornos

SQL_SUCCESS ou SQL_ERROR.

Diagnósticos

SQLAsyncNotificationCallback pode retornar SQL_ERROR para as duas situações a seguir (elas indicam um problema de implementação no driver ou no Gerenciador de Driver.

Erro Descrição
A conexão ou a instrução não solicitaram notificação.
Identificador inválido O driver passou um identificador inválido, que falhou nos testes internos de validação do Gerenciador de Driver.

Confira também

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