Шаг 163 - Свойство ConflictTable

Описание
Возвращает имя таблицы конфликтов, содержащей записи базы данных, ставшие причиной конфликта при синхронизации двух реплик (только в рабочей области Microsoft Jet).

Значение
Возвращаемое значение имеет тип String и содержит пустую строку, если таблицы конфликтов нет или база данных не является репликой.

Замечания
Если два пользователя, работающие с отдельными репликами, вносят изменения в одну и ту же запись, то изменения, сделанные одним пользователем, не будут приняты второй репликой. Как следствие, пользователь, которому не удалось занести изменения в базу данных, должен выполнить действия, необходимые для разрешения конфликта.
Конфликт возникает на уровне записи, а не на уровне полей. Например, если один пользователь изменяет значение поля "Адрес", а другой значение поля "Телефон" в одной и той же записи, то одно из изменений отвергается. Поскольку конфликт возникает на уровне записи, вполне вероятной является ситуация, когда принятое изменение и отвергнутое изменение, в действительности, не противоречат друг другу.
Для разрешения конфликта механизм синхронизации создает таблицы конфликтов, в которые заносятся данные, которые были бы занесены в основные таблицы при успешном выполнении изменений. Пользователь, создающий программы для объектов доступа к данным, имеет возможность просмотреть таблицы конфликтов и выбрать из них подходящие данные.
Все таблицы конфликтов получают имена вида "таблица_conflict", где прототип таблица представляет имя исходной таблицы, сокращенное, чтобы в результате не превысить максимально возможной длины имени таблицы.

Пример
Следующая программа использует свойство ConflictTable для печати имен таблиц, в которых возникли конфликты при синхронизации.

Sub ConflictTableX()

	Dim dbsNorthwind As Database
	Dim tdfTest As TableDef
	Set dbsNorthwind = OpenDatabase("Борей.mdb")
	' Отображает семейство TableDefs и проверяет свойство 
	' ConflictTable каждого объекта.
	For Each tdfTest In dbsNorthwind.TableDefs
		If tdfTest.ConflictTable <> "" Then Debug.Print tdfTest.Name & " имеет конфликт."
	Next tdfTest
	dbsNorthwind.Close
End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.04.2002