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 | 행을 해제합니다. |
RestartPosition | 다음 인출 위치를 초기 위치로 변경합니다. 즉, 행 집합을 처음 만들 때의 위치입니다. |
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[]);
매개 변수
OLE DB 프로그래머 참조에서 IRowset::AddRefRows를 참조하세요.
IRowsetImpl::CreateRow
GetNextRows에서 호출하여 새 HROW
메서드를 할당하는 도우미 메서드입니다.
구문
HRESULT CreateRow(DBROWOFFSET lRowsOffset,
DBCOUNTITEM& cRowsObtained,
HROW* rgRows);
매개 변수
lRowsOffset
생성되는 행의 커서 위치입니다.
cRowsObtained
생성된 행 수를 나타내는 참조가 사용자에게 다시 전달됩니다.
rgRows
새로 만든 행 핸들을 사용하여 호출자에게 반환되는 s 배열 HROW
입니다.
설명
행이 있는 경우 이 메서드는 AddRefRows를 호출 하고 반환합니다 . 그렇지 않으면 RowClass 템플릿 변수의 새 인스턴스를 할당하고 m_rgRowHandles 추가합니다.
IRowsetImpl::GetData
행 집합의 행 복사본에서 데이터를 검색합니다.
구문
STDMETHOD(GetData )(HROW hRow,
HACCESSOR hAccessor,
void* pDstData);
매개 변수
OLE DB 프로그래머 참조에서 IRowset::GetData를 참조하세요.
일부 매개 변수는 다음과 같은 다른 이름의 OLE DB 프로그래머의 참조 매개 변수에 해당합니다.IRowset::GetData
OLE DB 템플릿 매개 변수 | OLE DB 프로그래머의 참조 매개 변수 |
---|---|
pDstData | pData |
설명
또한 OLE DB 데이터 변환 DLL을 사용하여 데이터 변환을 처리합니다.
IRowsetImpl::GetDBStatus
지정된 필드에 대한 DBSTATUS 상태 플래그를 반환합니다.
구문
virtual DBSTATUS GetDBStatus(RowClass* currentRow,
ATLCOLUMNINFO* columnNames);
매개 변수
currentRow
[in] 현재 행입니다.
columnNames
[in] 상태가 요청되는 열입니다.
Return Value
열에 대한 DBSTATUS 플래그입니다.
IRowsetImpl::GetNextRows
이전 위치를 기억하여 행을 순차적으로 가져옵니다.
구문
STDMETHOD(GetNextRows )(HCHAPTER hReserved,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
매개 변수
OLE DB 프로그래머 참조에서 IRowset::GetNextRows를 참조하세요.
IRowsetImpl::IRowsetImpl
생성자입니다.
구문
IRowsetImpl();
설명
일반적으로 이 메서드를 직접 호출할 필요가 없습니다.
IRowsetImpl::RefRows
AddRefRows 및 ReleaseRows에서 호출하여 기존 행 핸들에 대한 참조 수를 늘리거나 해제합니다.
구문
HRESULT RefRows(DBCOUNTITEM cRows,
const HROWrghRows[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[],
BOOL bAdd);
매개 변수
OLE DB 프로그래머 참조에서 IRowset::AddRefRows를 참조하세요.
Return Value
표준 HRESULT 값입니다.
IRowsetImpl::ReleaseRows
행을 해제합니다.
구문
STDMETHOD(ReleaseRows )(DBCOUNTITEM cRows,
const HROW rghRows[],
DBROWOPTIONS rgRowOptions[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[]);
매개 변수
OLE DB 프로그래머 참조에서 IRowset::ReleaseRows를 참조하세요.
IRowsetImpl::RestartPosition
다음 인출 위치를 초기 위치로 변경합니다. 즉, 행 집합을 처음 만들 때의 위치입니다.
구문
STDMETHOD(RestartPosition )(HCHAPTER /* hReserved */);
매개 변수
OLE DB 프로그래머 참조에서 IRowset::RestartPosition을 참조하세요.
설명
행 집합 위치는 호출될 때까지 GetNextRow
정의되지 않습니다. 호출 RestartPosition
한 다음 뒤로 가져오거나 스크롤하여 행 집합에서 뒤로 이동할 수 있습니다.
IRowsetImpl::SetDBStatus
지정된 필드에 대한 DBSTATUS 상태 플래그를 설정합니다.
구문
virtual HRESULT SetDBStatus(DBSTATUS* statusFlags,
RowClass* currentRow,
ATLCOLUMNINFO* columnInfo);
매개 변수
statusFlags
열에 대해 설정할 DBSTATUS 플래그입니다.
currentRow
현재 행
columnInfo
상태를 설정할 열입니다.
Return Value
표준 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;
설명
소비자가 음수 또는 cRows를 사용하여 GetNextRows를 호출하고 m_bReset
true GetNextRows
이면 행 집합의 끝으로 lOffset
이동합니다. false이면 m_bReset
소비자는 OLE DB 사양에 따라 오류 코드를 받습니다. 플래그는 m_bReset
행 집합이 처음 만들어질 때와 소비자가 IRowsetImpl::RestartPosition을 호출할 때로 설정 true
됩니다. 호출GetNextRows
할 때로 false
설정됩니다.
IRowsetImpl::m_iRowset
커서를 나타내는 행 집합의 인덱스입니다.
구문
DBROWOFFSET m_iRowset;
IRowsetImpl::m_rgRowHandles
에 대한 응답으로 GetNextRows
공급자가 현재 포함하는 행 핸들의 맵입니다.
구문
MapClass m_rgRowHandles;
설명
행 핸들은 호출 ReleaseRows
하여 제거됩니다. MapClass 정의에 대한 IRowsetImpl 개요 를 참조하세요.