Описание
Задает или возвращает значение для объекта Relation, указывающее, должна ли учитываться представляемая объектом связь при заполнении частичной реплики из полной реплики (только в базах данных Microsoft Jet).
Значение
Задаваемое или возвращаемое значение принадлежит к типу Boolean и имеет значение True, когда при синхронизации задается учет связи.
Замечания
Данное свойство позволяет выполнять репликацию данных из полной реплики в частичную реплику с учетом связей, установленных между таблицами. Свойство PartialReplica используют в тех случаях, когда одного свойства ReplicaFilter недостаточно для однозначного указания данных, помещаемых в частичную реплику. Например, предположим, что имеется база данных, в которой для таблицы "Клиенты" установлена связь с отношением "один-ко-многим" с таблицей "Заказы", и требуется задать такую настройку частичной реплики, чтобы в нее помещались только заказы клиентов из города Тверь (а не все заказы). Невозможно задать в свойстве ReplicaFilter таблицы "Заказы" условие Город = 'Тверь', поскольку поле "Город" находится в таблице "Клиенты", а не в таблице "Заказы".
Для репликации всех заказов из города Тверь, необходимо указать, что связь между таблицами "Заказы" и "Клиенты" является активной при репликации. После создания частичной реплики для ее заполнения заказами из Твери требуются следующие действия:
При определении фильтра или связи для реплики необходимо помнить, что записи частичной реплики, не удовлетворяющие условию отбора, будут удалены из частичной реплики, но не из полной реплики. Например, предположим, что в свойстве ReplicaFilter объекта TableDef "Клиенты" для частичной реплики задано условие "Город = 'Тверь'", и требуется снова заполнить базу данных. Это приведет к вставке или обновлению всех записей для клиентов из Твери. Если после этого изменить условие фильтра ReplicaFilter на "Город = 'Тула'" и снова заполнить базу данных, все записи для клиентов из Твери в частичной реплике будут удалены, а все записи для клиентов из Тулы вставлены из полной реплики. В полной реплике не будет удалена ни одна из записей.
Полезным приемом перед заданием значения свойства ReplicaFilter или PartialReplica является синхронизация частичной реплики, для которой задаются эти свойства, с полной репликой. Это обеспечит передачу изменений из частичной реплики в полную реплику перед удалением любых записей из частичной реплики.
Пример
Следующая программа использует свойство PartialReplica для репликации всех записей, соответствующих клиентам из одного региона:
PartialReplicaX() ' Предположения: dbsTemp является частичной репликой, ' а между таблицами установлена соответствующая связь. Dim tdfOrders As TableDef Dim relCustOrd As Relation Dim dbsTemp As Database Dim relLoop As Relation Set dbsTemp = OpenDatabase("Борей.mdb") Set tdfOrders = dbsTemp.TableDefs("Заказы") ' Ищет объект Relation представляющий связь ' между таблицами "Клиенты" и "Заказы". For Each relLoop In dbsTemp.Relations If relLoop.Table = "Клиенты") And relLoop.ForeignTable = "Заказы") Then ' Задает для свойства PartialReplica объекта Relation ' значение True. relLoop.PartialReplica = True Exit For End If Next relLoop End Sub