Поделиться через


Написание собственного настраиваемого обработчика

Вы можете написать собственный обработчик, если вы являетесь администратором сервера IIS, который хочет поддержки RDS по умолчанию, но больше контроля над запросами пользователей и правами доступа.

Обработчик MSDFMAP реализует интерфейс IDataFactoryHandler.

Важный

Начиная с Windows 8 и Windows Server 2012, компоненты сервера RDS больше не включены в операционную систему Windows (дополнительные сведения см. в статье Windows 8 и Windows Server 2012 Compatibility Cookbook). Клиентские компоненты RDS будут удалены в будущей версии Windows. Избегайте использования этой функции в новой работе разработки и планируйте изменение приложений, которые в настоящее время используют эту функцию. Приложения, использующие RDS, должны перенестись в службу данных WCF .

Интерфейс IDataFactoryHandler

Этот интерфейс имеет два метода, GetRecordset и Reconnect. Оба метода требуют, чтобы для свойства CursorLocation задано значение adUseClient.

Оба метода принимают аргументы, которые отображаются после первой запятой в ключевом слове "Handler=". Например, "Handler=progid,arg1,arg2;" будет передавать строку аргумента "arg1,arg2", а "Handler=progid" будет передавать пустой аргумент.

Метод GetRecordset

Этот метод запрашивает источник данных и создает новый объект Recordset с помощью предоставленных аргументов. Набор записей должен быть открыт с помощью adLockBatchOptimistic и не должен быть открыт асинхронно.

Аргументы

conn строку подключения.

args Аргументы обработчика.

запрос текст команды для выполнения запроса.

ppRS Указатель, где должен быть возвращен набор записей.

Метод повторного подключения

Этот метод обновляет источник данных. Он создает новый объект Connection и присоединяет заданный набор записей .

Аргументы

conn строка подключения.

args Аргументы обработчика.

pRS объект Recordset.

msdfhdl.idl

Это определение интерфейса для IDataFactoryHandler, которое отображается в файле 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);  
    };  
};  

См. также

Раздел подключения к файлу настройки
Раздел "Журналы файлов кастомизации"
раздела SQL файла настройки
раздел "Список пользователей" файла настроек
Настройка DataFactory
необходимые параметры клиента
Общие сведения о файле настройки