Synergex.SynergyDE.Select.CTState

Enum defining change tracking status values

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET
namespace Synergex.SynergyDE.Select
public enum CTState

The CTState enumeration identifies the change tracking status.

Fields

Untracked

A record that has no recorded change history.

Insert

The initial record version.

Update

A modified record version.

Delete

A deleted record version.

ModifiedByDelete

A record version deleted in a later snapshot.

ModifiedByUpdate

A record version updated in a later snapshot.

Changed

ModifiedByDelete or ModifiedByUpdate.

PriorVersion

A record version with a known version in a prior snapshot.

Discussion

The CTState enumeration values are bit values, and you’ll need to use bitwise operators in your comparison logic:

public enum CTState
    Untracked,          ^x(0000)
    Insert,             ^x(0001)
    Update,             ^x(0002)
    Delete,             ^x(0004)
    ModifiedByDelete,   ^x(0010)
    ModifiedByUpdate,   ^x(0020)
    Changed,            ^x(0030)
    PriorVersion,       ^x(0040)
endenum

Untracked, Insert, Update, and Delete are mutually exclusive, as are ModifiedByDelete and ModifiedByUpdate.

For example, in the following code, Insert reflects the record contents as they were first stored; Update reflects the record contents after they were updated; and Delete reflects the record contents as they were deleted. If an Insert or Update record includes the Changed enumeration (ModifiedByUpdate or ModifiedByDelete), an updated version or deletion of that record exists in a newer snapshot; otherwise that record is currently active.

ctstate = selenum.GetCTInfo.GetCTState
if (ctstate.band.CTState.Insert) then
    display(ttchn, "[Insert")
else if (ctstate.band.CTState.Delete) then
    display(ttchn, "[Delete")
else if (ctstate.band.CTState.Update) then
    display(ttchn, "[Update")
else
    display(ttchn, "[No Change data")
if (ctstate.band.CTState.ModifiedByDelete) then
    display(ttchn, ":ModifiedByDelete")
else if (ctstate.band.CTState.ModifiedByUpdate)
    display(ttchn, ":ModifiedByUpdate")
if (ctstate.band.CTState.PriorVersion)
    display(ttchn, ":PriorVersion")
if (.not.(int)(ctstate.band.CTState.Changed).and..not.(int)
&  (ctstate.band.CTState.Delete)) then
    writes(ttchn, ":Active]")
else
    writes(ttchn, "]")

See also