Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практическая работа 29. Репликация и синхронизация баз данных






Для приобретения навыков репликации и синхронизации нужно выполнить несколько этапов:

1. сделать ссылку на библиотеку Microsoft Jet and Replication Objects 2.1 Library (меню Проект Ссылки библиотека OK) и библиотеку, обеспечивающую работу с DAO: Microsoft DAO 3, 54 Objects Library,

2. создать главную реплику (Command1_Click (), см. ниже):

o открыть базу данных,

o создать свойство Replicable и присвоить ему значение " Т",

3. cоздать копию главной реплики (Command2_Click (), см. ниже):

o открыть базу данных,

o использовать метод MakeReplica,

4. внести изменения в главную реплику и еe копию:

o внести изменение в 1-ой записи главной реплики и копии,

o зафиксировать изменение значения поля s_Generation (см. ниже) при изменении содержимого таблиц; там появятся нули вместо единиц и соответствующая запись будет позднее скопирована при выполении процедуры синхронизации,

5. выполнение синхронизации - копирование изменений главной реплики в реплику и наоборот (Command3_Click (), см. ниже):

o открыть базу данных,

o использовать метод Cynchronize объекта Database.

Последовательность действий:

· ввести код процедур Command1_Click () и Command2_Click (), см. ниже,

· стартовать первую процедуру (создание главной реплики),

· после остановки выполнения проекта открыть базу данных (главную реплику) в приложении Visdata, найти добавленные поля каждой таблицы: в каждую таблицу главной реплики добавлены 3 поля:

o s_Generation, идентифицирующее записи, которые были изменены Вами/сотрудниками учреждения. После изменения записей, содержимое поля меняется с 1 на 0 (сначала везде была 1) и в процессе синхронизации, т.е. позднее, пересылаются только записи, которым соответствует значение поля 0,

o s_GUID, содержащее идентификатор каждой записи,

o s_Lineage, хранящее количество изменений записи.

Пояснения: после создания главной реплики в главной реплике появились новые системные таблицы, появились дополнительные свойства главной реплики. Свойство Replicable (установлено в Т) означает, что для базы данных можно создавать реплики. После создания главной реплики появились новые свойства любой таблицы главной реплики.

· стартовать вторую процедуру (создание реплики),

· после остановки выполнения проекта просмотреть базу данных в приложении Visdata (в базе данных содержатся те же самые таблицы),

· открыть таблицу MSysReplicas, содержащую информацию о каждом члене репликационного набора, где появилась вторая запись из-за создания реплики (ранее была только одна запись),

· поочерeдно открыть базы данных (главную реплику и реплику) в любом приложении, предназначенном для работы с базами данных и сделать изменения в одной записи какой-либо таблицы. Наблюдать изменения поля s_Generation - появление чисел 0 вместо 1 после внесения изменений Вами/сотрудниками учреждения в записи таблиц главной реплики и реплики,

· создать и стартовать процедуру Command3_Click (), см. код ниже,

· после остановки выполнения проекта загрузить реплику в приложение Visdata, просмотреть содержимое соответствующей таблицы (в этой таблице появились изменения, сделанные ране в главной реплике) и значения поля s_Generation: в процессе синхронизации значение поля увеличивается на 1 при каждом изменении записи.

В тех случаях, когда в разных репликах изменяется одна и та же запись несkолько раз, то в итоге в процессе синхронизации копируются данные той реплики, которая изменила запись большее число раз. В случае равенства числа изменений Microsoft Jet выбирает запись из таблицы с наименьшим значением ReplicaID,

· cделать изменения в реплике 1 раз, в главной реплике - 2 раза. Сделать щелчок на третьей командной кнопке, затем проверить результат синхронизации.

Private Sub Command1_Click() ' создание главной репликиDim dbHaupt As Database, replicaProp As Property' открыть базуSet dbHaupt = OpenDatabase(" C: \rep\sabi.mdb", True) ' создать свойство ReplicableSet replicaProp = dbHaupt.CreateProperty(" Replicable", dbText, " T")dbHaupt.Properties.Append replicaProp ' добавить свойство' свойству присвоить значение TruedbHaupt.Properties(" Replicable") = " T" End SubPrivate Sub Command2_Click() ' создание репликиDim dbHaupt As Database' открыть базуSet dbHaupt = OpenDatabase(" C: \rep\sabi.mdb", True) 'создать новый объект репликационного набораdbHaupt.MakeReplica " C: \rep\sabicopy.mdb", " Replica of " & " dbHaupt" dbHaupt.CloseEnd SubPrivate Sub Command3_Click() ' процесс синхронизацииDim dbHaupt As Database' открыть базу данных - главную репликуSet dbHaup = OpenDatabase(" C: \rep\sabi.mdb", True) ' копирование изменений dbHaupt.Synchronize " C: \rep\sabicopy.mdb" End Sub

ADO






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.