ISaveChangeContext::GetChangeFromDestinationVersions
Возвращает объект, содержащий исходную версию, переданную поставщиком назначения модулю применения изменений.
HRESULT GetChangeFromDestinationVersions(
ISyncChange ** ppChangeFromDestinationVersions);
Параметры
- ppChangeFromDestinationVersions
[out] Возвращает объект, содержащий исходную версию, переданную поставщиком назначения модулю применения изменений.
Возвращаемое значение
S_OK
E_POINTER
SYNC_E_INTERNAL_ERROR
Замечания
Этот метод можно использовать для реализации проверки оптимистичного параллелизма. Для этого поставщик назначения сравнивает версию, содержащуюся в ppChangeFromDestinationVersions, с текущей версией, указанной в метаданных. Если версии не совпадают, это значит, что элемент был изменен в реплике назначения в период времени с момента начала применения изменений и до вызова метода ISynchronousNotifyingChangeApplierTarget::SaveChange. Если это происходит, поставщик назначения должен сообщить об ошибке, используя ISaveChangeContext::SetRecoverableErrorOnChange, а метаданные и данные этого изменения не должны применяться. Следует иметь в виду, что эта проверка параллелизма эффективна, только если версии в хранилище метаданных обновляются до выполнения проверки параллелизма (например в системе, в которой версии в хранилище метаданных обновляются одновременно с изменением элементов в хранилище элементов).