IRowsetUpdateImpl 클래스
IRowsetUpdate 인터페이스의 OLE DB 템플릿 구현입니다.
구문
template <
class T,
class Storage,
class UpdateArray = CAtlArray<Storage>,
class RowClass = CSimpleRow,
class MapClass = CAtlMap <RowClass::KeyType, RowClass*>
>
class IRowsetUpdateImpl : public IRowsetChangeImpl<
T,
Storage,
IRowsetUpdate,
RowClass,
MapClass>
매개 변수
T
에서 파생된 클래스입니다 IRowsetUpdateImpl
.
스토리지
사용자 레코드입니다.
UpdateArray
행 집합을 업데이트하기 위해 캐시된 데이터를 포함하는 배열입니다.
RowClass
에 대한 스토리지 단위입니다 HROW
.
MapClass
공급자가 보유한 모든 행 핸들의 스토리지 단위입니다.
요구 사항
헤더: atldb.h
멤버
인터페이스 메서드(IRowsetChange와 함께 사용됨)
속성 | 설명 |
---|---|
SetData | 하나 이상의 열에서 데이터 값을 설정합니다. |
인터페이스 메서드(IRowsetUpdate와 함께 사용)
속성 | 설명 |
---|---|
GetOriginalData | 보류 중인 변경 내용을 무시하고 데이터 원본에 가장 최근에 전송되거나 데이터 원본에서 가져온 데이터를 가져옵니다. |
GetPendingRows | 보류 중인 변경 내용이 있는 행 목록을 반환합니다. |
GetRowStatus | 지정된 행의 상태를 반환합니다. |
취소 | 마지막 가져오기 또는 업데이트 이후 행에 대한 변경 내용을 실행 취소합니다. |
Update | 마지막 가져오기 또는 업데이트 이후 행에 변경된 내용을 전송합니다. |
구현 메서드(콜백)
속성 | 설명 |
---|---|
IsUpdateAllowed | 업데이트를 허용하기 전에 보안, 무결성 등을 확인하는 데 사용됩니다. |
데이터 멤버
속성 | 설명 |
---|---|
m_mapCachedData | 지연된 작업에 대한 원래 데이터를 포함합니다. |
설명
여기에 설명된 모든 항목도 여기에 적용되므로 먼저 IRowsetChange에 대한 설명서를 읽고 이해해야 합니다. 또한 데이터 설정에 대한 OLE DB 프로그래머 참조 의 6장을 읽어야 합니다.
IRowsetUpdateImpl
는 소비자가 데이터 원본으로 변경한 내용의 전송을 지연하고 전송 전에 변경 내용을 IRowsetChange
실행 취소할 수 있도록 하는 OLE DB IRowsetUpdate
인터페이스를 구현합니다.
Important
공급자를 구현하기 전에 다음 설명서를 읽는 것이 좋습니다.
OLE DB 프로그래머 참조 6 장
또한 UpdatePV 샘플에서 클래스가 사용되는 방법
RUpdateRowset
도 확인합니다.
IRowsetUpdateImpl::SetData
하나 이상의 열에서 데이터 값을 설정합니다.
구문
STDMETHOD (SetData )(HROW hRow,
HACCESSOR hAccessor,
void* pSrcData);
매개 변수
OLE DB 프로그래머 참조에서 IRowsetChange::SetData를 참조하세요.
설명
이 메서드는 IRowsetChangeImpl::SetData 메서드를 재정의하지만 작업의 즉각적인 처리 또는 지연 처리를 허용하도록 원래 데이터의 캐싱을 포함합니다.
IRowsetUpdateImpl::GetOriginalData
보류 중인 변경 내용을 무시하고 데이터 원본에 가장 최근에 전송되거나 데이터 원본에서 가져온 데이터를 가져옵니다.
구문
STDMETHOD (GetOriginalData )(HROW hRow,
HACCESSOR hAccessor,
void* pData);
매개 변수
OLE DB 프로그래머 참조에서 IRowsetUpdate::GetOriginalData를 참조하세요.
IRowsetUpdateImpl::GetPendingRows
보류 중인 변경 내용이 있는 행 목록을 반환합니다.
구문
STDMETHOD (GetPendingRows )(HCHAPTER /* hReserved */,
DBPENDINGSTATUS dwRowStatus,
DBCOUNTITEM* pcPendingRows,
HROW** prgPendingRows,
DBPENDINGSTATUS** prgPendingStatus);
매개 변수
hReserved
[in] IRowsetUpdate::GetPendingRows의 hChapter 매개 변수에 해당합니다.
다른 매개 변수는 OLE DB 프로그래머 참조에서 IRowsetUpdate::GetPendingRows를 참조하세요.
설명
자세한 내용은 OLE DB 프로그래머 참조에서 IRowsetUpdate::GetPendingRows를 참조하세요.
IRowsetUpdateImpl::GetRowStatus
지정된 행의 상태를 반환합니다.
구문
STDMETHOD (GetRowStatus )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBPENDINGSTATUS rgPendingStatus[]);
매개 변수
hReserved
[in] IRowsetUpdate::GetRowStatus의 hChapter 매개 변수에 해당합니다.
다른 매개 변수는 OLE DB 프로그래머 참조에서 IRowsetUpdate::GetRowStatus를 참조하세요.
IRowsetUpdateImpl::Undo
마지막 가져오기 또는 업데이트 이후 행에 대한 변경 내용을 실행 취소합니다.
구문
STDMETHOD (Undo )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[ ],
DBCOUNTITEM* pcRowsUndone,
HROW** prgRowsUndone,
DBROWSTATUS** prgRowStatus);
매개 변수
hReserved
[in] IRowsetUpdate::Undo의 hChapter 매개 변수에 해당합니다.
pcRowsUndone
[out] IRowsetUpdate::Undo의 pcRows 매개 변수에 해당합니다.
prgRowsUndone
[in] IRowsetUpdate::Undo의 prgRows 매개 변수에 해당합니다.
다른 매개 변수는 OLE DB 프로그래머 참조에서 IRowsetUpdate::Undo를 참조하세요.
IRowsetUpdateImpl::Update
마지막 가져오기 또는 업데이트 이후 행에 변경된 내용을 전송합니다.
구문
STDMETHOD (Update )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM* pcRows,
HROW** prgRows,
DBROWSTATUS** prgRowStatus);
매개 변수
hReserved
[in] IRowsetUpdate::Update의 hChapter 매개 변수에 해당합니다.
다른 매개 변수는 OLE DB 프로그래머 참조에서 IRowsetUpdate::Update를 참조하세요.
설명
변경 내용은 IRowsetChangeImpl::FlushData를 호출하여 전송됩니다. 변경 내용을 적용하려면 소비자가 CRowset::Update를 호출해야 합니다. OLE DB 프로그래머 참조의 행 상태에 설명된 대로 prgRowstatus를 적절한 값으로 설정합니다.
IRowsetUpdateImpl::IsUpdateAllowed
업데이트 전에 보안, 무결성 등을 확인하려면 이 메서드를 재정의합니다.
구문
HRESULT IsUpdateAllowed(DBPENDINGSTATUS /* [in] */ /* status */,
HROW /* [in] */ /* hRowUpdate */,
DBROWSTATUS* /* [out] */ /* pRowStatus */);
매개 변수
status
[in] 행에서 보류 중인 작업의 상태입니다.
hRowUpdate
[in] 사용자가 업데이트하려는 행에 대한 핸들입니다.
pRowStatus
[out] 사용자에게 반환된 상태입니다.
설명
업데이트를 허용해야 한다고 판단되면 S_OK 반환합니다. 그렇지 않으면 E_FAIL 반환합니다. 업데이트를 허용하는 경우 IRowsetUpdateImpl::Update에서 적절한 행 상태로 설정 DBROWSTATUS
해야 합니다.
IRowsetUpdateImpl::m_mapCachedData
지연된 작업에 대한 원래 데이터를 포함하는 맵입니다.
구문
CAtlMap<
HROW hRow,
Storage* pData
>
m_mapCachedData;
매개 변수
hRow
데이터의 행을 처리합니다.
pData
캐시할 데이터에 대한 포인터입니다. 데이터는 Storage 형식(사용자 레코드 클래스)입니다. IRowsetUpdateImpl 클래스의 Storage 템플릿 인수를 참조하세요.