Escrevendo seu próprio manipulador personalizado
Talvez você queira escrever seu próprio manipulador se for um administrador de servidor do IIS que queira o suporte padrão do RDS, mas mais controle sobre solicitações de usuário e direitos de acesso.
O manipulador MSDFMAP implementa a interface IDataFactoryHandler.
Importante
A partir do Windows 8 e do Windows Server 2012, os componentes do servidor RDS não estão mais incluídos no sistema operacional Windows (consulte o Windows 8 e o Windows Server 2012 Compatibility Cookbook para obter mais detalhes). Os componentes do cliente RDS serão removidos em uma versão futura do Windows. Evite usar esse recurso em um novo trabalho de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso. Os aplicativos que usam RDS devem migrar para WCF Data Service.
IDataFactoryHandler Interface
Essa interface tem dois métodos, GetRecordset e Reconnect. Ambos os métodos exigem que a propriedade CursorLocation seja definida como adUseClient.
Ambos os métodos usam argumentos que aparecem após a primeira vírgula na palavra-chave "Handler=". Por exemplo, "Handler=progid,arg1,arg2;"
passará uma cadeia de caracteres de argumento de "arg1,arg2"
e "Handler=progid"
passará um argumento nulo.
Método GetRecordset
Esse método consulta a fonte de dados e cria um novo objeto Recordset usando os argumentos fornecidos. O Recordset deve ser aberto com adLockBatchOptimistic e não deve ser aberto de forma assíncrona.
Argumentos
conn A cadeia de conexão.
args Os argumentos para o manipulador.
consulta texto de comando para realizar uma consulta.
ppRS O ponteiro onde o conjunto de registros deve ser retornado.
Método Reconectar
Esse método atualiza a fonte de dados. Ele cria um novo objeto Connection e anexa o conjunto de registros fornecido.
Argumentos
conn A cadeia de conexão.
args Os argumentos para o manipulador.
A Recordset objeto.
msdfhdl.idl
Essa é a definição de interface para IDataFactoryHandler que aparece no arquivo 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 Também
Seção de Conexão de Arquivo de Personalização
Seção de logs de arquivos de personalização
Seção SQL do arquivo de personalização
Seção UserList do arquivo de personalização
Personalização do DataFactory
As configurações necessárias do cliente
noções básicas sobre o arquivo de personalização