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


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