IVersionEdit Interface

Provides access to members that return information about versions and posting of versions.

Description

The IVersionEditinterface is used to reconcile a version with a target version. Once reconciled, the object provides the ability to work with representations of the version prior to start editing, the pre-reconcile version, the reconcile version, and the common ancestor version for conflict resolution.

Members

Name Description
Method CanPost Returns a boolean if the version can be posted to the reconcile version.
Read-only property CommonAncestorVersion The common ancestor of this version and the reconcile version.
Read-only property ConflictClasses All objects which contain conflicts between the current and reconciled versions.
Read-only property ModifiedClasses All objects modified by the current and reconciled versions.
Method Post Posts the current version to the reconciled version.
Read-only property PreReconcileVersion The version prior to reconciliation.
Method Reconcile Reconciles the current version with a target version.
Read-only property ReconcileVersion The version that the current version is reconciling against.
Read-only property StartEditingVersion The version prior to any edits.

IVersionEdit.CanPost Method

Returns a boolean if the version can be posted to the reconcile version.

Public Function CanPost ( _
) As Boolean
public bool CanPost (
);

Remarks

The CanPost method is only true if IVersionEdit.Reconcile has been performed and the reconcile operation has not been undone. CanPost does not check if the target version has been redefined since the reconcile operation.

The Postmethod requires that the current edit version has been reconciled with any ancestor versions prior to being called. The implicit locking during a reconcile should greatly increase the chances of the source and target versions being ready to post. There is a possibility that these two versions could be out of sync, possibly do to the target version changing after a reconcile operation, and in this case an error will be returned to the application on the post call. It is the application developer�s responsibility to check the CanPost method prior to calling post and handling the post errors mentioned above thrown during the Post operation.

Postfirst performs a save and then synchronizes the target version with the current edit version. The Postoperation cannot be undone.

IVersionEdit.CommonAncestorVersion Property

The common ancestor of this version and the reconcile version.

Public ReadOnly Property CommonAncestorVersion As IVersion
public IVersion CommonAncestorVersion {get;}

Remarks

The CommonAncestorVersionmethod returns an IVersionof the version that the current edit version is reconciling against. The common ancestor version represents the state of the database at the time the version was created from the target version (i.e. when the two versions were identical). This provides a representation of the version which can be used to compare features or rows after the reconciliation.

The IVersionreturned is not available as a workspace for editing.

This property should only be called after a Reconcile or the IVersionobject will be nothing.

IVersionEdit.ConflictClasses Property

All objects which contain conflicts between the current and reconciled versions.

Public ReadOnly Property ConflictClasses As IEnumConflictClass
public IEnumConflictClass ConflictClasses {get;}

Remarks

The read-only property ConflictClassesreturns an IEnumConflictClassthat can be used to iterate over the Classes that have conflicts between the current version and the target reconciled version.

This property should only be called after a Reconcile or the enumeration will be empty.

IVersionEdit.ModifiedClasses Property

All objects modified by the current and reconciled versions.

Public ReadOnly Property ModifiedClasses As IEnumBSTR
public IEnumBSTR ModifiedClasses {get;}

Remarks

The read-only property ModifiedClassesreturns an IEnumBSTRthat can be used to iterate over the names of the tables that have been modified by the current version being edited and the target reconciled version.

This property should only be called after a Reconcile or the enumeration will be empty.

IVersionEdit.Post Method

Posts the current version to the reconciled version.

Public Sub Post ( _
    ByVal VersionName As String _
)
public void Post (
    string VersionName
);

Errors Returned

FDO_E_VERSION_RECONCILE_LOST: Post not allowed after undoing a reconcile.

FDO_E_VERSION_IS_PROTECTED: Operation not allowed because the version is protected.

FDO_E_VERSION_NOT_RECONCILED: The version hasn't been reconciled.

FDO_E_VERSION_REDEFINED: The version has been redefined to reference a new database state.

Remarks

The Postmethod requires that the current edit version has been reconciled with any ancestor versions prior to being called. The implicit locking during a reconcile should greatly increase the chances of the source and target versions being ready to post. There is a possibility that these two versions could be out of sync, possible do to the target version changing after a reconcile operation, and in this case an error will be returned to the application on the post call. It is the application developer�s responsibility to check the CanPost method prior to calling post and handling the post errors mentioned above thrown during the Post operation.

Postfirst performs a save and then synchronizes the target version with the current edit version. This results in an explicit commit of any open transactions in the database. The Postoperation can not be undone.

IVersionEdit.PreReconcileVersion Property

The version prior to reconciliation.

Public ReadOnly Property PreReconcileVersion As IVersion
public IVersion PreReconcileVersion {get;}

Remarks

The PreReconcileVersionmethod returns an IVersionof the version that the current edit version is reconciling against. The pre-reconcile version represents the state of the database prior to the reconcile operation. This provides a representation of the version which can be used to compare features or rows after the reconciliation.

The IVersionreturned is not available as a workspace for editing.

This property should only be called after a Reconcile or the IVersionobject will be nothing.

IVersionEdit.Reconcile Method

Reconciles the current version with a target version.

Public Function Reconcile ( _
    ByVal VersionName As String _
) As Boolean
public bool Reconcile (
    string VersionName
);

Errors Returned

FDO_E_RECONICLE_VERSION_NOT_AVAILABLE: Unable to reconcile: the target version is currently being reconciled against.

FDO_E_VERSION_BEING_EDITED: Operation not allowed while the version is being edited.

FDO_E_VERSION_NOT_FOUND: The version could not be located.

Remarks

The Reconcile function reconciles the current edit version with the specified target version. The target version must be an ancestor of the current version or an error will be returned. The target version name passed in is case-sensitive and should take the form {owner}.{version_name} for example, SDE.DEFAULT.

If the returned boolean value from Reconcile is TRUE, then conflicts were detected. Otherwise no conflicts were detected.

A reconcile can only be performed if no other users are currently editing the version. As well, the target version cannot concurrently be reconciling by a second application. See IVersion::IVersionLocks for additional information on detecting version locks.

Calling Reconcile will abort the current edit operation therefore any edits made within an open edit operation when reconcile is called will be lost. If there is an open edit operation it is good practice to call StopEditOperation prior to calling Reconcile

IVersionEdit.ReconcileVersion Property

The version that the current version is reconciling against.

Public ReadOnly Property ReconcileVersion As IVersion
public IVersion ReconcileVersion {get;}

Remarks

The ReconcileVersionmethod returns an IVersionof the version that the current edit version is reconciling against. The reconcile version represents the state of the database for the target reconcile version when the reconcile operation started. This provides a representation of the target reconcile version which can be used to compare features or rows after the reconciliation.

This property should only be called after a Reconcile or the IVersionobject will be nothing.

IVersionEdit.StartEditingVersion Property

The version prior to any edits.

Public ReadOnly Property StartEditingVersion As IVersion
public IVersion StartEditingVersion {get;}

Remarks

The StartEditingVersionmethod returns an IVersionof the version that the current edit version is reconciling against. The start editing version represents the state of the database when start editing was initiated. This provides a representation of the version which can be used to compare features or rows after the reconciliation.

The IVersionreturned is not available as a workspace for editing.

This property should only be called after a Reconcile or the IVersionobject will be nothing.

Classes that implement IVersionEdit

Classes Description

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.