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


Класс IRowsetImpl

Предоставляет реализацию интерфейса IRowset.

Синтаксис

template <
   class T,
   class RowsetInterface,
   class RowClass = CSimpleRow,
   class MapClass = CAtlMap <
      RowClass::KeyType,
      RowClass*>>
class ATL_NO_VTABLE IRowsetImpl : public RowsetInterface

Параметры

T
Класс, производный от IRowsetImpl.

RowsetInterface
Класс, производный от IRowsetImpl.

RowClass
Единица HROWхранения для .

MapClass
Единица хранения для всех дескрипторов строк, удерживаемых поставщиком.

Требования

Заголовок: atldb.h

Участники

Методы

Имя Описание
AddRefRows Добавляет число ссылок в существующий дескриптор строки.
CreateRow Вызывается GetNextRows для выделения новогоHROW. Не вызывается напрямую пользователем.
GetData Извлекает данные из копии набора строк.
GetDBStatus Возвращает состояние указанного поля.
GetNextRows Последовательно извлекает строки, запоминая предыдущую позицию.
IRowsetImpl Конструктор. Не вызывается напрямую пользователем.
RefRows Вызывается AddRefRows и ReleaseRows. Не вызывается напрямую пользователем.
ReleaseRows Освобождает строки.
Перезагрузить положение Переместит следующую позицию получения на начальную позицию; То есть его положение при первом создании набора строк.
SetDBStatus Задает флаги состояния для указанного поля.

Элементы данных

Имя Описание
m_bCanFetchBack Указывает, поддерживает ли поставщик обратную выборку.
m_bCanScrollBack Указывает, может ли поставщик прокручивать курсор назад.
m_bReset Указывает, сбрасывает ли поставщик положение курсора. Это имеет особое значение при прокрутке назад или получении обратно в GetNextRows.
m_iRowset Индекс набора строк, представляющий курсор.
m_rgRowHandles Список дескрипторов строк.

Замечания

IRowset — это базовый интерфейс набора строк.

IRowsetImpl::AddRefRows

Добавляет число ссылок в существующий дескриптор строки.

Синтаксис

STDMETHOD(AddRefRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Параметры

См. раздел IRowset::AddRefRows в справочнике программиста OLE DB.

IRowsetImpl::CreateRow

Вспомогательный метод, вызываемый GetNextRows для выделения нового HROW.

Синтаксис

HRESULT CreateRow(DBROWOFFSET lRowsOffset,
   DBCOUNTITEM& cRowsObtained,
   HROW* rgRows);

Параметры

lRowsOffset
Позиция курсора создаваемой строки.

cRowsObtained
Ссылка, переданная пользователю, указывающая количество созданных строк.

rgRows
Массив возвращаемых вызывающем объекту массивов HROWс только что созданными дескрипторами строк.

Замечания

Если строка существует, этот метод вызывает AddRefRows и возвращает. В противном случае он выделяет новый экземпляр переменной шаблона RowClass и добавляет его в m_rgRowHandles.

IRowsetImpl::GetData

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

Синтаксис

STDMETHOD(GetData )(HROW hRow,
   HACCESSOR hAccessor,
   void* pDstData);

Параметры

См. раздел IRowset::GetData в справочнике программиста OLE DB.

Некоторые параметры соответствуют эталонным параметрам OLE DB программиста различных имен, которые описаны в IRowset::GetData:

Параметры шаблона OLE DB Эталонные параметры OLE DB Программиста
pDstData pData

Замечания

Также обрабатывает преобразование данных с помощью библиотеки DLL преобразования данных OLE DB.

IRowsetImpl::GetDBStatus

Возвращает флаги состояния DBSTATUS для указанного поля.

Синтаксис

virtual DBSTATUS GetDBStatus(RowClass* currentRow,
   ATLCOLUMNINFO* columnNames);

Параметры

currentRow
[in] Текущая строка.

columnNames
[in] Столбец, для которого запрашивается состояние.

Возвращаемое значение

Флаги DBSTATUS для столбца.

IRowsetImpl::GetNextRows

Последовательно извлекает строки, запоминая предыдущую позицию.

Синтаксис

STDMETHOD(GetNextRows )(HCHAPTER hReserved,
   DBROWOFFSET lRowsOffset,
   DBROWCOUNT cRows,
   DBCOUNTITEM* pcRowsObtained,
   HROW** prghRows);

Параметры

См. раздел IRowset::GetNextRows в справочнике программиста OLE DB.

IRowsetImpl::IRowsetImpl

Конструктор.

Синтаксис

IRowsetImpl();

Замечания

Обычно не нужно вызывать этот метод напрямую.

IRowsetImpl::RefRows

Вызывается AddRefRows и ReleaseRows для увеличения или выпуска числа ссылок в существующий дескриптор строки.

Синтаксис

HRESULT RefRows(DBCOUNTITEM cRows,
   const HROWrghRows[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[],
   BOOL bAdd);

Параметры

См. раздел IRowset::AddRefRows в справочнике программиста OLE DB.

Возвращаемое значение

Стандартное значение HRESULT.

IRowsetImpl::ReleaseRows

Освобождает строки.

Синтаксис

STDMETHOD(ReleaseRows )(DBCOUNTITEM cRows,
   const HROW rghRows[],
   DBROWOPTIONS rgRowOptions[],
   DBREFCOUNT rgRefCounts[],
   DBROWSTATUS rgRowStatus[]);

Параметры

См. раздел IRowset::ReleaseRows в справочнике программиста OLE DB.

IRowsetImpl::RestartPosition

Переместит следующую позицию получения на начальную позицию; То есть его положение при первом создании набора строк.

Синтаксис

STDMETHOD(RestartPosition )(HCHAPTER /* hReserved */);

Параметры

См. раздел IRowset::RestartPosition в справочнике программиста OLE DB.

Замечания

Позиция набора строк не определена до GetNextRow вызова. Вы можете перемещаться назад в наборе строк, вызывая RestartPosition , а затем извлекая или прокручивая назад.

IRowsetImpl::SetDBStatus

Задает флаги состояния DBSTATUS для указанного поля.

Синтаксис

virtual HRESULT SetDBStatus(DBSTATUS* statusFlags,
   RowClass* currentRow,
   ATLCOLUMNINFO* columnInfo);

Параметры

statusFlags
Флаги DBSTATUS , заданные для столбца.

currentRow
Текущая строка.

columnInfo
Столбец, для которого устанавливается состояние.

Возвращаемое значение

Стандартное значение HRESULT.

Замечания

Поставщик переопределяет эту функцию, чтобы обеспечить специальную обработку для DBSTATUS_S_ISNULL и DBSTATUS_S_DEFAULT.

IRowsetImpl::m_bCanFetchBack

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

Синтаксис

unsigned m_bCanFetchBack:1;

Замечания

Связана со свойством DBPROP_CANFETCHBACKWARDS DBPROPSET_ROWSET в группе. Поставщик должен поддерживаться DBPROP_CANFETCHBACKWARDS m_bCanFetchBackwards true.

IRowsetImpl::m_bCanScrollBack

Указывает, может ли поставщик прокручивать курсор назад.

Синтаксис

unsigned  m_bCanScrollBack:1;

Замечания

Связана со свойством DBPROP_CANSCROLLBACKWARDS DBPROPSET_ROWSET в группе. Поставщик должен поддерживаться DBPROP_CANSCROLLBACKWARDS m_bCanFetchBackwards true.

IRowsetImpl::m_bReset

Битовый флаг, используемый для определения того, определена ли позиция курсора в наборе строк.

Синтаксис

unsigned m_bReset:1;

Замечания

Если потребитель вызывает GetNextRows с отрицательным lOffset значением или воронами и m_bReset имеет значение true, GetNextRows переходит к концу набора строк. Если m_bReset значение равно false, потребитель получает код ошибки в соответствии со спецификацией OLE DB. Флаг m_bReset получает значение true при первом создании набора строк и при вызове IRowsetImpl::RestartPosition. Он получает значение false при вызове GetNextRows.

IRowsetImpl::m_iRowset

Индекс набора строк, представляющий курсор.

Синтаксис

DBROWOFFSET m_iRowset;

IRowsetImpl::m_rgRowHandles

Карта дескрипторов строк, содержащихся в настоящее время поставщиком в ответ на GetNextRows.

Синтаксис

MapClass m_rgRowHandles;

Замечания

Дескриптор строк удаляется путем вызова ReleaseRows. Общие сведения об определении MapClass см. в обзоре IRowsetImpl.

См. также

Шаблоны поставщика OLE DB
Архитектура шаблона поставщика OLE DB
Класс CSimpleRow