Использование методов ручного доступа
При обработке неизвестной команды нужно выполнить четыре действия:
Определить параметры.
Выполнить команду.
Определить выходные столбцы.
Проверить, не возвращается ли несколько наборов строк.
Чтобы сделать это при помощи шаблонов потребителей OLE DB, используйте класс CManualAccessor и выполните следующие действия:
Откройте объект CCommand, указав в качестве параметра шаблона класс CManualAccessor.
CCommand<CManualAccessor, CRowset, CMultipleResults> rs;
Запросите сеанс для интерфейса IDBSchemaRowset и используйте набор строк параметров процедуры.Если интерфейс IDBSchemaRowset недоступен, запросите интерфейс ICommandWithParameters.Для получения необходимых сведений вызовите функцию GetParameterInfo.Если интерфейсы недоступны, то можно предположить, что параметров нет.
Чтобы добавить параметры и задать их значения, следует вызвать для каждого параметра функцию AddParameterEntry.
Откройте набор строк, но при этом присвойте параметру привязки значение false.
Вызовите функцию GetColumnInfo для получения сведений о выходных столбцах.Для добавления выходного столбца в состав привязки вызовите функцию AddBindEntry.
Вызовите функцию GetNextResult, чтобы определить, есть ли еще доступные наборы строк.Повторите шаги с 2 по 5.
Использование класса ручного доступа демонстрируется в процедуре CDBListView::CallProcedure примера DBVIEWER.