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] 행 집합의 새 크기(행 수)입니다.
설명
이 함수를 호출하는 경우 행 집합이 열리기 전이어야 합니다.