CBulkRowset 클래스

한 번의 호출로 여러 행 핸들을 검색하여 데이터를 대량으로 작업하도록 행을 가져오고 조작합니다.

구문

template <class TAccessor>
class CBulkRowset : public CRowset<TAccessor>

매개 변수

TAccessor
접근자 클래스입니다.

요구 사항

헤더: atldbcli.h

멤버

메서드

이름 설명
AddRefRows 참조 수를 증분합니다.
CBulkRowset 생성자입니다.
MoveFirst 데이터의 첫 번째 행을 검색하여 필요한 경우 새 대량 인출을 수행합니다.
MoveLast 마지막 행으로 이동합니다.
Movenext 다음 데이터 행을 검색합니다.
MovePrev 이전 행으로 이동합니다.
MoveToBookmark 책갈피로 표시된 행 또는 해당 책갈피에서 지정된 오프셋의 행을 가져옵니다.
MoveToRatio 행 집합의 소수 위치에서 시작하는 행을 가져옵니다.
ReleaseRows 현재 행(m_nCurrentRow)을 0으로 설정하고 모든 행을 해제합니다.
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();

Return Value

표준 HRESULT입니다.

CBulkRowset::CBulkRowset

CBulkRowset 개체를 만들고 기본 행 수를 10으로 설정합니다.

구문

CBulkRowset();

CBulkRowset::MoveFirst

데이터의 첫 번째 행을 검색합니다.

구문

HRESULT MoveFirst() throw();

Return Value

표준 HRESULT입니다.

CBulkRowset::MoveLast

마지막 행으로 이동합니다.

구문

HRESULT MoveLast() throw();

Return Value

표준 HRESULT입니다.

CBulkRowset::MoveNext

다음 데이터 행을 검색합니다.

구문

HRESULT MoveNext() throw();

Return Value

표준 HRESULT입니다. 행 집합의 끝에 도달하면 DB_S_ENDOFROWSET 반환합니다.

CBulkRowset::MovePrev

이전 행으로 이동합니다.

구문

HRESULT MovePrev() throw();

Return Value

표준 HRESULT입니다.

CBulkRowset::MoveToBookmark

책갈피로 표시된 행 또는 해당 책갈피에서 지정된 오프셋(lSkip)의 행을 가져옵니다.

구문

HRESULT MoveToBookmark(const CBookmarkBase& bookmark,
   DBCOUNTITEM lSkip = 0) throw();

매개 변수

bookmark
[in] 데이터를 가져올 위치를 표시하는 책갈피입니다.

lSkip
[in] 책갈피에서 대상 행까지의 행 수입니다. lSkip이 0이면 가져온 첫 번째 행은 책갈피가 지정된 행입니다. lSkip이 1이면 가져온 첫 번째 행은 책갈피가 지정된 행 뒤의 행입니다. lSkip이 -1이면 가져온 첫 번째 행은 책갈피가 지정된 행 앞의 행입니다.

Return Value

OLE DB 프로그래머 참조에서 IRowset::GetData를 참조하세요.

CBulkRowset::MoveToRatio

행 집합의 소수 위치에서 시작하는 행을 가져옵니다.

구문

HRESULT MoveToRatio(DBCOUNTITEM nNumerator,
   DBCOUNTITEM nDenominator)throw();

매개 변수

nNumerator
[in] 데이터를 가져올 소수 자릿수 위치를 결정하는 데 사용되는 숫자입니다.

nDenominator
[in] 데이터를 가져올 소수 자릿수 위치를 결정하는 데 사용되는 분모입니다.

Return Value

표준 HRESULT입니다.

설명

MoveToRatio 는 다음 수식에 따라 대략적으로 행을 가져옵니다.

(nNumerator * RowsetSize ) / nDenominator

행으로 측정된 행 집합의 크기는 어디에 RowsetSize 있습니까? 이 수식의 정확도는 특정 공급자에 따라 달라집니다. 자세한 내용은 OLE DB 프로그래머 참조에서 IRowsetScroll::GetRowsAtRatio를 참조하세요.

CBulkRowset::ReleaseRows

IRowset::ReleaseRows를 호출하여 현재 대량 행 집합에서 검색된 모든 행에 대한 참조 수를 줄입니다.

구문

HRESULT ReleaseRows() throw();

Return Value

표준 HRESULT입니다.

CBulkRowset::SetRows

각 호출에서 검색되는 행 핸들 수를 설정합니다.

구문

void SetRows(DBROWCOUNT nRows) throw();

매개 변수

nRows
[in] 행 집합의 새 크기(행 수)입니다.

설명

이 함수를 호출하는 경우 행 집합이 열리기 전이어야 합니다.

참고 항목

OLE DB 소비자 템플릿
OLE DB 소비자 템플릿 참조