Compartir vía


Escritura de un controlador personalizado

Es posible que quiera escribir su propio controlador si es un administrador del servidor IIS que quiere la compatibilidad predeterminada con RDS, pero más control sobre las solicitudes de usuario y los derechos de acceso.

MSDFMAP.Handler implementa la interfaz IDataFactoryHandler.

Importante

A partir de Windows 8 y Windows Server 2012, los componentes del servidor RDS ya no se incluyen en el sistema operativo Windows (para obtener más información, consulte Windows 8 y la Guía de compatibilidad de Windows Server 2012, edición Cookbook). Los componentes de cliente de RDS se eliminarán en una versión futura de Windows. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. Las aplicaciones que usan RDS deben migrar al servicio de datos WCF.

Interfaz IDataFactoryHandler

Esta interfaz tiene dos métodos: GetRecordset y Reconnect. Ambos métodos requieren que la propiedad CursorLocation se establezca en adUseClient.

Ambos métodos toman argumentos que aparecen después de la primera coma de la palabra clave "Handler=". Por ejemplo, "Handler=progid,arg1,arg2;" 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 mediante los argumentos proporcionados. El objeto Recordset debe abrirse con adLockBatchOptimistic y no de forma asincrónica.

Argumentos

conn Cadena de conexión.

args Argumentos del controlador.

query Texto del comando para realizar una consulta.

ppRS Puntero donde se debe devolver el objeto Recordset.

Método Reconnect

Este método actualiza el origen de datos. +Crea un nuevo objeto Connection y adjunta el objeto Recordset especificado.

Argumentos

conn Cadena de conexión.

args Argumentos del controlador.

pRS Objeto Recordset.

msdfhdl.idl

Esta 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);  
    };  
};  

Consulte también

Sección de conexión del archivo de personalización
Sección de registros del archivo de personalización
Sección de SQL del archivo de personalización
Sección UserList del archivo de personalización
Personalización de DataFactory
Configuración de cliente requerida
Descripción del archivo de personalización