Escribir su propio controlador personalizado
Se aplica a: Access 2013 | Access 2016
Quizás desee escribir un controlador propio si es un administrador de IIS y desea disponer de la compatibilidad predeterminada con RDS, pero además desea tener mayor control sobre las solicitudes y los derechos de acceso de los usuarios.
MSDFMAP.Handler implementa la interfaz IDataFactoryHandler.
Interfaz IDataFactoryHandler
Esta interfaz tiene dos métodos: GetRecordset y Reconnect. Ambos métodos requieren que el valor de la propiedad CursorLocation sea adUseClient.
Ambos métodos toman argumentos que aparecen detrás de la primera coma en la palabra clave "Handler=". Por ejemplo, "Handler=progid,arg1,arg2;"
pasará una cadena de argumento de "arg1,arg2"
y pasará una cadena de argumento de "arg1,arg2"
y "Handler=progid"
pasará un argumento NULL.
Método GetRecordset
Este método consulta el origen de datos y crea un nuevo objeto Recordset con los argumentos proporcionados. El objeto Recordset debe abrirse con adLockBatchOptimistic y no debe abrirse asincrónicamente.
Argumentos GetRecordset
conn: cadena de conexión.
args: argumentos para el controlador.
query: texto de comando para realizar una consulta.
ppRS: puntero donde debe devolverse el objeto Recordset.
Método Reconnect
Este método actualiza el origen de datos. Crea un nuevo objeto Connection y anexa el objeto Recordset especificado.
Volver a conectar argumentos
conn: cadena de conexión.
args: argumentos para el controlador.
pRS: objeto Recordset.
msdfhdl.idl
Es la definición de interfaz para IDataFactoryHandler que aparece en el archivo msdfhdl.idl.
[
uuid(D80DE8B3-0001-11d1-91E6-00C04FBBBFB3),
version(1.0)
]
library MSDFHDL
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
// TLib : Microsoft ActiveX Data Objects 2.0 Library
// {00000200-0000-0010-8000-00AA006D2EA4}
#ifdef IMPLIB
importlib("implib\\x86\\release\\ado\\msado15.dll");
#else
importlib("msado20.dll");
#endif
[
odl,
uuid(D80DE8B5-0001-11d1-91E6-00C04FBBBFB3),
version(1.0)
]
interface IDataFactoryHandler : IUnknown
{
HRESULT _stdcall GetRecordset(
[in] BSTR conn,
[in] BSTR args,
[in] BSTR query,
[out, retval] _Recordset **ppRS);
// DataFactory will use the ActiveConnection property
// on the Recordset after calling Reconnect.
HRESULT _stdcall Reconnect(
[in] BSTR conn,
[in] BSTR args,
[in] _Recordset *pRS);
};
};
Vea también
- Acceso al foro de desarrolladores
- Acceso a la ayuda en support.office.com
- Acceso a la ayuda en answers.microsoft.com
- Acceso a foros en UtterAccess
- Acceso al centro de ayuda de programadores VBA y desarrolladores (FMS)
- Acceso a las publicaciones en StackOverflow
Soporte técnico y comentarios
¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.