Sets or returns a value that determines whether a database or object in a database can be replicated (Microsoft Jet workspaces only).
Note Before getting or setting the Replicable property on a CdbDatabase, CdbTableDef, or CdbQueryDef object, you must create it by using the CreateProperty method and append it to the Properties collection for the object.
Syntax
There is no member function to explicitly access this property. See Usage below for an example of how this property is managed.
Remarks
On a CdbDatabase object, setting this property to "T"
makes the database replicable. Once you set the property to "T"
, you can't change it; setting the property to "F"
(or any value other than "T"
) causes an error.
On an object in a database, setting this property to "T"
replicates the object (and subsequent changes to the object) at all replicas in the replica set. You can also set this property in the object's property sheet in Microsoft Access.
Note Microsoft Jet 3.5 also supports the Boolean ReplicableBool property. Its functionality is identical to the Replicable property, except that it takes a Boolean value. Setting ReplicableBool to True makes the object replicable.
Before setting the Replicable property on a database, make a backup copy of the database. If setting the Replicable property fails, you should delete the partially replicated database, make a new copy from the backup, and try again.
When you set this property on a CdbDatabase object, Microsoft Jet adds fields, tables, and properties to objects within the database. Microsoft Jet uses these fields, tables, and properties to synchronize database objects. For example, all existing tables have three new fields added to them that help identify which records have changed. The addition of these fields and other objects increases the size of your database.
On forms, reports, macros, and modules defined by a host application (such as Microsoft Access), you set this property on the host-defined object through the host user interface. Once set, the Replicable property will appear in the Properties collection for the CdbDocument object representing the host object.
If the Replicable property has already been set on an object using the Replicated check box in the property sheet for the object, you cannot set the Replicable property in code.
When you create a new table, query, form, report, macro, or module at a replica, the object is considered local and is stored only at that replica. If you want users at other replicas to be able to use the object, you must change it from local to replicable. Either create the object at or import it into the Design Master and then set the Replicable property to "T"
.
The object on which you are setting the Replicable property might have already inherited that property from another object. However, the value set by the other object has no effect on the behavior of the object you want to make replicable. You must explicitly set the property for each object.
Usage
...
CdbDBEngine engine;
CdbProperty prp;
CdbQueryDef qdf;
COleVariant vTrue(_T("T"));
...
// Initialize engine, queryDef, etc.
prp = qdf.CreateProperty(
_T("Replicable"), dbText, &vTrue);
qdf.Properties.Append( prp );
...
prp = qdf.Properties[_T("Replicable")];
if (prp.GetValue() == vTrue)
{
prp = qdf.CreateProperty(
_T("KeepLocal"), dbText, &vTrue);
qdf.Properties.Append( prp );
}
...