Создание собственного настраиваемого обработчика
Вы можете написать собственный обработчик, если вы являетесь администратором сервера 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
Требуемые параметры клиента
Общие сведения о файле настроек