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


Создание собственного настраиваемого обработчика

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

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

Важно!

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

Интерфейс IDataFactoryHandler

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

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

Метод GetRecordset

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

Аргументы

Конн Строка подключения.

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

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

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

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

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

Аргументы

Конн Строка подключения.

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 файла
Настройка раздела UserList файла
Настройка DataFactory
Требуемые параметры клиента
Общие сведения о файле настроек