Класс IRowsetUpdateImpl
Реализация шаблонов OLE DB интерфейса IRowsetUpdate .
Синтаксис
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, так как все описанное здесь также применимо. Вы также должны прочитать главу 6 справочника программиста OLE DB по настройке данных.
IRowsetUpdateImpl
реализует интерфейс OLE DB IRowsetUpdate
, который позволяет потребителям отложить передачу изменений, внесенных в IRowsetChange
источник данных, и отменить изменения перед передачей.
Внимание
Настоятельно рекомендуется ознакомиться со следующей документацией ПЕРЕД попыткой реализовать поставщика:
Глава 6 справочника программиста OLE DB
Кроме того, узнайте, как
RUpdateRowset
класс используется в примере UpdatePV
IRowsetUpdateImpl::SetData
Задает значения данных в одном или нескольких столбцах.
Синтаксис
STDMETHOD (SetData )(HROW hRow,
HACCESSOR hAccessor,
void* pSrcData);
Параметры
См. раздел IRowsetChange::SetData в справочнике программиста OLE DB.
Замечания
Этот метод переопределяет метод IRowsetChangeImpl::SetData , но включает кэширование исходных данных для разрешения немедленной или отложенной обработки операции.
IRowsetUpdateImpl::GetOriginalData
Возвращает последние данные, передаваемые в источник данных или полученные из источника данных, игнорируя ожидающие изменения.
Синтаксис
STDMETHOD (GetOriginalData )(HROW hRow,
HACCESSOR hAccessor,
void* pData);
Параметры
См. раздел IRowsetUpdate::GetOriginalData в справочнике программиста OLE DB.
IRowsetUpdateImpl::GetPendingRows
Возвращает список строк с ожидающих изменений.
Синтаксис
STDMETHOD (GetPendingRows )(HCHAPTER /* hReserved */,
DBPENDINGSTATUS dwRowStatus,
DBCOUNTITEM* pcPendingRows,
HROW** prgPendingRows,
DBPENDINGSTATUS** prgPendingStatus);
Параметры
hReserved
[in] Соответствует параметру hChapter в IRowsetUpdate::GetPendingRows.
Дополнительные параметры см. в разделе IRowsetUpdate::GetPendingRows в справочнике программиста OLE DB.
Замечания
Дополнительные сведения см. в разделе IRowsetUpdate::GetPendingRows в справочнике программиста OLE DB.
IRowsetUpdateImpl::GetRowStatus
Возвращает состояние указанных строк.
Синтаксис
STDMETHOD (GetRowStatus )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBPENDINGSTATUS rgPendingStatus[]);
Параметры
hReserved
[in] Соответствует параметру hChapter в IRowsetUpdate::GetRowStatus.
Дополнительные параметры см. в разделе IRowsetUpdate::GetRowStatus в справочнике программиста OLE DB.
IRowsetUpdateImpl::Undo
Отменяет любые изменения строки с момента последнего получения или обновления.
Синтаксис
STDMETHOD (Undo )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[ ],
DBCOUNTITEM* pcRowsUndone,
HROW** prgRowsUndone,
DBROWSTATUS** prgRowStatus);
Параметры
hReserved
[in] Соответствует параметру hChapter в IRowsetUpdate::Undo.
pcRowsUndone
[out] Соответствует параметру pcRows в IRowsetUpdate::Undo.
prgRowsUndone
[in] Соответствует параметру prgRows в IRowsetUpdate::Undo.
Дополнительные параметры см. в разделе IRowsetUpdate::Undo в справочнике программиста OLE DB.
IRowsetUpdateImpl::Update
Передает все изменения, внесенные в строку с момента последнего получения или обновления.
Синтаксис
STDMETHOD (Update )(HCHAPTER /* hReserved */,
DBCOUNTITEM cRows,
const HROW rghRows[],
DBCOUNTITEM* pcRows,
HROW** prgRows,
DBROWSTATUS** prgRowStatus);
Параметры
hReserved
[in] Соответствует параметру hChapter в IRowsetUpdate::Update.
Дополнительные параметры см. в разделе IRowsetUpdate::Update в справочнике программиста OLE DB.
Замечания
Изменения передаются путем вызова IRowsetChangeImpl::FlushData. Потребитель должен вызвать CRowset::Update , чтобы изменения вступили в силу. Задайте prgRowstatus соответствующее значение, как описано в разделе "Состояния строк" в справочнике программиста OLE DB.
IRowsetUpdateImpl::IsUpdateAllowed
Переопределите этот метод, чтобы проверить безопасность, целостность и т. д. перед обновлениями.
Синтаксис
HRESULT IsUpdateAllowed(DBPENDINGSTATUS /* [in] */ /* status */,
HROW /* [in] */ /* hRowUpdate */,
DBROWSTATUS* /* [out] */ /* pRowStatus */);
Параметры
состояние
[in] Состояние ожидающих операций с строками.
hRowUpdate
[in] Обработка строк, которые пользователь хочет обновить.
pRowStatus
[out] Состояние, возвращенное пользователю.
Замечания
Если вы определите, что обновление должно быть разрешено, возвращает S_OK; в противном случае возвращает E_FAIL. Если вы разрешаете обновление, необходимо также задать DBROWSTATUS
в IRowsetUpdateImpl::Update соответствующее состояние строки.
IRowsetUpdateImpl::m_mapCachedData
Карта, содержащая исходные данные для отложенной операции.
Синтаксис
CAtlMap<
HROW hRow,
Storage* pData
>
m_mapCachedData;
Параметры
hRow
Обработка строк для данных.
pData
Указатель на данные, которые нужно кэшировать. Данные являются типом Storage (класс записи пользователя). См. аргумент шаблона хранилища в классе IRowsetUpdateImpl.
См. также
Шаблоны поставщика OLE DB
Архитектура шаблона поставщика OLE DB
Создание поставщика с возможностью записи