Класс CBulkRowset
Извлекает и управляет строками для массовой работы с данными, извлекая несколько дескрипторов строк с одним вызовом.
Синтаксис
template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>
Параметры
TAccessor
Класс доступа.
Требования
Заголовок: atldbcli.h
Участники
Методы
Имя | Описание |
---|---|
AddRefRows | Увеличивает число ссылок. |
CBulkRowset | Конструктор. |
MoveFirst | Извлекает первую строку данных, выполняя новую массовую выборку при необходимости. |
MoveLast | Перемещается к последней строке. |
MoveNext | Извлекает следующую строку данных. |
MovePrev | Перемещается к предыдущей строке. |
MoveToBookmark | Извлекает строку, помеченную закладкой или строкой с указанным смещением из этой закладки. |
MoveToRatio | Извлекает строки, начиная с дробной позиции в наборе строк. |
ReleaseRows | Задает текущую строку (m_nCurrentRow ) равным нулю и освобождает все строки. |
SetRows | Задает количество дескрипторов строк, которые необходимо получить одним вызовом. |
Пример
В следующем примере показано использование CBulkRowset
класса.
class CCustomerData
{
public:
char m_szField1[50];
BEGIN_COLUMN_MAP(CCustomerData)
COLUMN_ENTRY(1, m_szField1)
END_COLUMN_MAP()
};
void DoCBulkRowsetTest()
{
CoInitialize(NULL);
CCommand<CAccessor<CCustomerData>, CBulkRowset > cmd;
CDataSource ds;
// Open up data link dialogs to create a data source
ds.Open();
CSession session;
session.Open(ds);
// Could call SetRows() here if you want to fetch
// more than 10 HROWs at a time.
cmd.Open(session, L"Select * from customer");
cmd.MoveFirst();
// Note that the CBulkRowset by default fetched 10 HROWs at a time
// so that the MoveNext call will not have to make the GetNextRows
// call to get the second HROW because it has already been fetched
//by the MoveFirst() call above.
cmd.MoveNext();
cmd.Close();
session.Close();
ds.Close();
}
CBulkRowset::AddRefRows
Вызывает IRowset::AddRefRows , чтобы увеличить число ссылок для всех строк, полученных из набора массовых строк.
Синтаксис
HRESULT AddRefRows() throw();
Возвращаемое значение
Стандартный HRESULT.
CBulkRowset::CBulkRowset
Создает новый CBulkRowset
объект и задает число строк по умолчанию 10.
Синтаксис
CBulkRowset();
CBulkRowset::MoveFirst
Извлекает первую строку данных.
Синтаксис
HRESULT MoveFirst() throw();
Возвращаемое значение
Стандартный HRESULT.
CBulkRowset::MoveLast
Перемещается к последней строке.
Синтаксис
HRESULT MoveLast() throw();
Возвращаемое значение
Стандартный HRESULT.
CBulkRowset::MoveNext
Извлекает следующую строку данных.
Синтаксис
HRESULT MoveNext() throw();
Возвращаемое значение
Стандартный HRESULT. После достижения конца набора строк возвращает DB_S_ENDOFROWSET.
CBulkRowset::MovePrev
Перемещается к предыдущей строке.
Синтаксис
HRESULT MovePrev() throw();
Возвращаемое значение
Стандартный HRESULT.
CBulkRowset::MoveToBookmark
Извлекает строку, помеченную закладкой или строкой с указанным смещением (lSkip) из этой закладки.
Синтаксис
HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
DBCOUNTITEM lSkip = 0) throw();
Параметры
bookmark
[in] Закладка, помечающая расположение, из которого требуется получить данные.
lSkip
[in] Число строк из закладки в целевую строку. Если значение lSkip равно нулю, первая строка извлекается из закладок. Если значение lSkip равно 1, первая строка извлекается после закладной строки. Если значение lSkip равно -1, первая строка извлекается перед закладной строкой.
Возвращаемое значение
См. раздел IRowset::GetData в справочнике программиста OLE DB.
CBulkRowset::MoveToRatio
Извлекает строки, начиная с дробной позиции в наборе строк.
Синтаксис
HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
DBCOUNTITEM nDenominator)throw();
Параметры
nNumerator
[in] Числитель, используемый для определения дробной позиции, из которой следует получать данные.
nDenominator
[in] Знаменатель, используемый для определения дробной позиции, из которой следует получать данные.
Возвращаемое значение
Стандартный HRESULT.
Замечания
MoveToRatio
Извлекает строки примерно в соответствии со следующей формулой:
(nNumerator * RowsetSize ) / nDenominator
Где RowsetSize
размер набора строк измеряется в строках. Точность этой формулы зависит от конкретного поставщика. Дополнительные сведения см. в разделе IRowsetScroll::GetRowsAtRatio в справочнике программиста OLE DB.
CBulkRowset::ReleaseRows
Вызывает IRowset::ReleaseRows для уменьшения количества ссылок для всех строк, полученных в настоящее время из набора массовых строк.
Синтаксис
HRESULT ReleaseRows() throw();
Возвращаемое значение
Стандартный HRESULT.
CBulkRowset::SetRows
Задает количество дескрипторов строк, полученных каждым вызовом.
Синтаксис
void SetRows(DBROWCOUNT nRows) throw();
Параметры
nRows
[in] Новый размер набора строк (количество строк).
Замечания
Если вы вызываете эту функцию, она должна быть перед открытием набора строк.
См. также
Шаблоны объекта-получателя OLE DB
Ссылка на шаблоны объекта-получателя OLE DB