Compartir a través de


SQLAsyncNotificationCallback (función)

Conformidad
Versión introducida: ODBC 3.8

Cumplimiento de estándares: ninguno

Resumen
SQLAsyncNotificationCallback permite que un controlador vuelva a llamar al Administrador de controladores cuando haya algún progreso para la operación asincrónica actual después de que el controlador devuelva SQL_STILL_EXECUTING. A SQLAsyncNotificationCallback solo puede llamarlo el controlador.

Los controladores no llaman a SQLAsyncNotificationCallback con el nombre de función SQLAsyncNotificationCallback. En su lugar, el Administrador de controladores pasa un puntero de función a un controlador como valor para el atributo SQL_ATTR_ASYNC_DBC_NOTIFICATION_CALLBACK o SQL_ATTR_ASYNC_STMT_NOTIFICATION_CALLBACK del identificador de conexión o instrucción correspondiente, respectivamente. Se pueden asignar distintos identificadores a distintos valores de puntero de función. El tipo del puntero de función se define como SQL_ASYNC_NOTIFICATION_CALLBACK.

SQLAsyncNotificationCallback es seguro para subprocesos. Un controlador puede optar por usar varios subprocesos que llaman a SQLAsyncNotificationCallback en diferentes identificadores simultáneamente.

Sintaxis

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

Argumentos

pContex
Puntero a una estructura de datos definida por el Administrador de controladores. El valor se pasa al controlador mediante SQLSetConnectAttr(SQL_ATTR_ASYNC_DBC_NOTIFICATION_CONTEXT) o SQLSetStmtAttr(SQL_ATTR_ASYNC_STMT_NOTIFICATION_CONTEXT). El controlador no tiene acceso al valor.

fLast
Lo usa un controlador para indicar que esta invocación de función de devolución de llamada es la última para la operación asincrónica actual. El controlador devolverá un código de retorno distinto de SQL_STILL_EXECUTING cuando el Administrador de controladores vuelva a llamar a la función. El Administrador de controladores puede usar esta información, por ejemplo, para informar a la aplicación de antemano de que se completará la operación asincrónica.

Si Handle no es un identificador válido del tipo especificado por HandleType, SQLCancelHandle devuelve SQL_INVALID_HANDLE.

Devoluciones

SQL_SUCCESS o SQL_ERROR.

Diagnóstico

SQLAsyncNotificationCallback puede devolver SQL_ERROR para las dos situaciones siguientes (indican un problema de implementación en el controlador o el Administrador de controladores.

Error Descripción
La conexión o la instrucción no solicitaron una notificación.
Identificador no válido El controlador pasó un identificador no válido, que produjo un error en las pruebas internas de validación del Administrador de controladores.

Consulte también

Ejecución asincrónica (método de sondeo)