REPLCHANGEINFO (Compact 2013)

3/26/2014

This structure is used by the ReplFindNextChange and the ReplGetOidStatus functions to return information about one changed object in the object store or in a database volume.

Syntax

struct REPLCHANGEINFO {
  WORD wVersion;
  WORD wStatus;
  WORD wObjType;
  CEOID oidChanged;
  CEOID oidDbase;
};

Members

  • wVersion
    Version of this structure. Set this value to 1.
  • wStatus
    Status of the changed object. The following table shows possible values.

    Value

    Description

    REPLSTATUS_CONFLICT

    The object has changed outside the synchronization period. The change will be reflected after a future checkpoint.

    REPLSTATUS_DELETED

    The object was deleted.

    REPLSTATUS_MODIFIED

    The object was modified in some way by another thread or application. Modifications include creation, a value change, or re-creation.

    REPLSTATUS_UNCHANGED

    The object has not changed since the previous checkpoint.

  • wObjType
    Current type of the object. The following table shows possible values.

    Type

    Description

    OBJTYPE_DATABASE

    The object is a database.

    OBJTYPE_DIRECTORY

    The object is a directory.

    OBJTYPE_FILE

    The object is a file.

    OBJTYPE_INVALID

    The object was deleted and no longer has a type.

    OBJTYPE_RECORD

    The object is a database record.

  • oidChanged
    Object identifier (OID) of the object that was changed.
  • oidDbase
    If the object is a record, the OID of the database. If the object is not a record or has been deleted, this member is set to zero.

Remarks

Changes to items can be any of the following:

  • Newly created
  • Modified
  • Deleted
  • Deleted and then recreated

A database record can be recreated in a different database. An object, such as a database, can be deleted, and then recreated as another type of object, such as a file.

The reported type may have changed from the previous time the object was read. A type change reflects the deletion of the first object and the reassignment of the object identifier to a newly created object. Similarly, if the object is a database record, the database that the record is in can have changed. Again, the database change reflects the deletion of the first record and reassignment of the object identifier to a new record in a different database.

REPLSTATUS_CONFLICT indicates that an object was changed outside the client's current synchronization period. Typically, an item with this status is not copied during synchronization. Because each checkpoint expands the range of items to be synchronized, after a future checkpoint the object's status reflects the change that was made to it. Synchronizing an object that has a conflict causes synchronizing it more than once.

Additional information about the changed object can be obtained from the CeOidGetInfoEx2 (CEDB) function. Even if the reported status is not REPLSTATUS_DELETED, calls to CeOidGetInfoEx2 and other functions can fail if the object is deleted by another application between the call to ReplFindNextChange or ReplGetOidStatus and the call to the unsuccessful function.

Requirements

Header

pwindbas.h

See Also

Reference

Database Replication Structures
CeOidGetInfoEx2 (CEDB)
GetOIDSearchID
ReplFindNextChange
ReplGetOidStatus
ReplOpenSync