다음을 통해 공유


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

AddRefRowsReleaseRows에서 호출하여 기존 행 핸들에 대한 참조 수를 늘리거나 해제합니다.

구문

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 개요참조하세요.

참고 항목

OLE DB 공급자 템플릿
OLE DB 공급자 템플릿 구조
CSimpleRow 클래스