Использование модели briefcase при разработке приложений баз данных
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: понятие культуры, ответы школа
| Добавил(а) на сайт: Reutov.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата
Загрузка данных из локального кэша
Для загрузки данных из файла наследники TCustomADODataSet имеют метод LoadFromFile. Перед загрузкой из файла свойство Connection у ParamsCS необходимо установить в nil, так как в ходе загрузки осуществляется попытка подключиться к серверу БД. Код представлен ниже:
procedure TForm1.act_ConnectLocalExecute(Sender: TObject); begin ParamsCS.Connection:=nil; ParamsCS.LoadFromFile(ExtractFilePath(Application.ExeName)+ParamFile); end; |
ПРИМЕЧАНИЕ Вызов LoadFromFile автоматически меняет тип команды датасета (св-во CommandType) на cmdFile и в свойство CommandText сохраняет имя файла, откуда была произведена загрузка. |
Синхронизация данных с сервером
Синхронизация включает в себя передачу сделанных пользователем изменений и получение с сервера обновленных (обновления от всех пользователей) данных. Получение данных с сервера мы уже рассмотрели и здесь остановимся на проблеме передачи изменений в центральную базу. Задача передачи изменений может быть разделена на две непосредсвтенно передачу и обработку ошибок синхронизации.
Передача изменений осуществляется вызовом метода UpdateBatch. Как мы уже говорили, причиной ошибок синхронизации является одновременное редактирование одной записи несколькими пользователями. По умолчанию запись на сервере отыскивается по ключевым полю и полям, в которых пользователь сделал изменения. При этом если другой пользователь успел сделать в тех же полях этой записи изменения и внести их в базу, запись не может быть обнаружена. Возникает ошибка синхронизации. Алгоритм поиска записи контролируется свойством Update Criteria объекта ADO RecordSet. Update Criteria может принимать следующие значения:
AdCriteriaAllCols |
Поиск по совокупности всех столбцов. Наиболее «жесткий» режим. |
AdCriteriaKey |
Поиск только по ключевым полям. Наиболее «мягкий» режим. Конфликт возникает лишь при удалении записи из базы. |
AdCriteriaTimeStamp |
Если в таблице есть поле типа TimeStamp для синхронизации будет использовано оно |
AdCriteriaUpdCols |
Поиск по совокупности ключевых полей и полей, содержащих изменения данных |
При обнаружении ошибок синхронизации генерируется исключительная ситуация класса EOleError c сообщением о невозможности сохранить изменения. Обработка ошибок синхронизации поддерживается в ADO, начиная с версии 2.7. При этом алгоритм разрешения конфликтов, приведенный в MSDN, следующий:
Свойство Filter объекта Recordset ADO установить равным adFilterConflictingRecords. При этом будут отображены только конфликтные записи.
Вызвать метод Resync того же объекта с параметром AffectRecords равным adAffectGroup, параметр ResyncValues равным adResyncUnderlyingValues, при этом будут получены обновленные данные о состоянии конфликтных записей с сервера. Актуальные значения полей записей рекордсета хранятся в свойстве UnderlyingValue объекта Field, начальные в OriginalValue, а измененные пользователем в Value.
Отобразив пользователю набор конфликтных записей и значения их полей мы даем ему возможность отредактировать конфликтные записи и устранить конфликты.
Записать в БД изменения пользователя можно вызвав UpdateBatch с параметром adAffectGroup.
Рекомендуем скачать другие рефераты по теме: организация реферат, шпаргалки по математике.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата