Класс 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