IVersionedObject3 Interface

Provides access to members that manage a versioned object.

Description

The IVersionedObject3 interface is used for determining the current version of an object. It can also be used to register and unregister an object as versioned. This interface also provides the ability to set the properties of the versioned object.

Members

Name Description
Method GetVersionRegistrationInfo Indicates if this object is registered as versioned and is moving edits to base.
Read-only property HasUncompressedEdits Indicates if the object has edits that haven't been compressed yet.
Read-only property IsRegisteredAsVersioned Indicates if the object is registered as versioned.
Method RegisterAsVersioned Register/UnRegister the object as being versioned.
Method RegisterAsVersioned3 Register this object as versioned with the option to move edits to base.
Method SupportsMovingEditsToBase Indicates if this object supports moving edits to base as a RegisterAsVersioned3 option.
Method UnRegisterAsVersioned3 UnRegister this object as versioned with the option to compress the Default edits to base.
Read-only property Version The object's current version.

IVersionedObject3.GetVersionRegistrationInfo Method

Indicates if this object is registered as versioned and is moving edits to base.

Public Sub GetVersionRegistrationInfo ( _
    ByRef isRegistered As Boolean, _
    ByRef isMovingEditsToBase As Boolean _
)
public void GetVersionRegistrationInfo (
    ref bool isRegistered,
    ref bool isMovingEditsToBase
);

Remarks

The GetVersionRegistrationInfo method provides access to the properties of the versioned object. The IsRegistered argument is a boolean that represents if the object is versioned. The isMovingEditsToBase argument represents if the versioned object is currently moving edits to base. This argument must be set to false during registration in order to enable archiving on the versioned object.

IVersionedObject3.RegisterAsVersioned3 Method

Register this object as versioned with the option to move edits to base.

Public Sub RegisterAsVersioned3 ( _
    ByVal moveEditsToBase As Boolean _
)
public void RegisterAsVersioned3 (
    bool moveEditsToBase
);

Remarks

The RegisterAsVersioned3 method allows one to register an object as versioned with the ability of editing the data in both multiuser edit session modes. The MoveEditsToBase property can be set to true if the desire is push all saved edits to the base table when save is called. Whenever you save edits to the DEFAULT version, either by editing it directly or merging in changes from another version, the edits apply directly to the data source. With the MoveEditsToBase set to true the database is edited directly. The edits do not remain in delta tables as is the case when the data is registered as versioned with this property set to false. This allows for easy integration between ESRI applications and non-ESRI applications.

If it is the desire to enable archiving on the versioned object class it must be registered with the MoveEditsToBase property set to false. For more information on this see IArchivableObject::EnableArchiving.

Complex data such as Geometric Networks and Topologies do not support the moving of edits to base and for this reason they cannot be registered as versioned with the moving of edits to base.

Only the owner can register or unregister the object.

By programmatically registering a class participating in a geometric network as versioned it does not guarantee the entire geometric network including other participating classes will also be registered. It is then recommended the registration take place at the feature dataset level rather than on the individual feature class. This workflow is exposed by default through the user interface in ArcCatalog. If there is a need to register individual classes as versioned within a feature dataset without registering the entire dataset it is crucial the every class participating in a geometric network, including the geometric network itself, is explicitly registered individually.

IVersionedObject3.SupportsMovingEditsToBase Method

Indicates if this object supports moving edits to base as a RegisterAsVersioned3 option.

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

Remarks

The SupportsMovingToBase property returns a boolean which represents if the current dataset supports this versioning property. Complex datasets like those involved in a topology or geometric network will not support moving edits to the base table to the base table when versioned.

IVersionedObject3.UnRegisterAsVersioned3 Method

UnRegister this object as versioned with the option to compress the Default edits to base.

Public Sub UnRegisterAsVersioned3 ( _
    ByVal compressDefault As Boolean _
)
public void UnRegisterAsVersioned3 (
    bool compressDefault
);

Remarks

Unregistering an object class as versioned permanently drops the object's delta tables. To preserve the edits, the boolean argument _compressDefault_can be used to compress all outstanding edits in the default version to the base tables. Outstanding edits in versions other than default will be lost when the object class is unregistered as versioned.

Only the owner can register or unregister the object.

Archiving must first be disabaled on a class before it can be unregistered as versioned. This situation only applies to classes that have be registered as versioned with the MoveEditsToBase option set to false through the IVersionObject3.RegisterAsVersioned3 method.

Inherited Interfaces

Interfaces Description
IVersionedObject2 Provides access to members that manage a versioned object.
IVersionedObject Provides access to members that manage a versioned object.

Classes that implement IVersionedObject3

Classes Description

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