Escrever seu próprio manipulador personalizado
Talvez você queira escrever seu próprio manipulador se for um administrador de servidor do IIS que deseja o suporte padrão do RDS, mas mais controle sobre solicitações de usuário e direitos de acesso.
O MSDFMAP.Handler 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 (confira Windows 8 e Manual de Compatibilidade do Windows Server 2012 para obter mais detalhes). Os componentes do cliente RDS serão removidos em uma versão futura do Windows. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. Os aplicativos que usam o RDS devem migrar para o Serviço de Dados do WCF.
Interface IDataFactoryHandler
Essa interface tem dois métodos, GetRecordset e Reconnect. Os dois 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;"
transmitirá uma cadeia de caracteres de argumento e "arg1,arg2"
"Handler=progid"
transmitirá um argumento nulo.
Método GetRecordset
Esse método consulta a fonte de dados e cria um objeto Recordset usando os argumentos fornecidos. O Recordset precisa ser aberto com adLockBatchOptimistic e não pode ser aberto de forma assíncrona.
Argumentos
conn A cadeia de conexão.
args Os argumentos do manipulador.
query O texto do comando para fazer uma consulta.
ppRS O ponteiro no qual Recordset deve ser retornado.
Método Reconnect
Esse método atualiza a fonte de dados. Ele cria um objeto Connection e anexa o Recordset fornecido.
Argumentos
conn A cadeia de conexão.
args Os argumentos do manipulador.
pRS Um objeto Recordset.
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 Conexão do arquivo de personalização
Seção Logs do arquivo de personalização
Seção SQL do arquivo de personalização
Seção UserList do arquivo de personalização
Personalização do DataFactory
Configurações necessárias de cliente
Noções básicas sobre o arquivo de personalização