Реклама:

Первичное соединение приложения с источником данных выполняется при помощи объекта типа SqlConnection или OleDbConnection. После заливки соединение разрывают, вплоть до того момента, когда записи, измененные в приложении, потребуется записать обратно в источник.

Заливка данных из источника данных в набор данных приложения производится адаптером данных - объектом типа SqlDataAdapter или OleDbDataAdapter. Адаптер служит как бы мостом между набором данных и источником.

Адаптер содержит объект команды данных, выполняющей извлечение данных из источника.

Команда данных - это объект типа SqlCommand или OleDbCommand, выполняющий запрос на сервере.

Для считывания данных применяется запрос, содержащий оператор SELECT. Приложение инициирует заливку данных, вызывая метод Fill адаптера данных. Команда отсылает источнику данных запрос, содержащий оператор SELECT. Источник выполняет этот запрос и возвращает выбранные записи, если они есть. Записи поступают в приложение и размещаются в таблице данных (объект DataTable).

Отметим, что каждый адаптер обслуживает только одну таблицу набора данных. Сколько в наборе таблиц, столько должно быть и адаптеров, хотя для простоты приведенный выше рисунок и содержит изображение только одного адаптера.

После заливки соединение с источником данных разрывается. Наступает этап обработки данных в приложении. По окончании этого этапа таблицы набора данных могут содержать некоторое количество измененных записей, в том числе старых откорректированных и удаленных, а также вновь добавленных. Источник данных ничего не знает об этих изменениях до их актуализации.

В процессе актуализации в приложении происходит формирование потоков измененных записей, устанавливается повторное соединение с источником данных и производится перезапись изменений в источник. Вслед за этим соединение вновь разрывается.

Актуализацию изменений производит также адаптер. Актуализация начинается, когда приложение вызывает метод Update адаптера. За актуализацию конкретного вида изменений отвечает отдельная команда данных. Каждая из них выбирает в наборе данных приложения записи с изменением конкретного вида и отсылает их источнику данных совместно с соответствующим запросом

DELETE.

оператором UPDATE, INSERT или

Рассмотренный выше принцип взаимодействия приложения и источника данных существенно отличается от принятого ранее в клиент-серверных системах, где между приложением и источником существовала постоянная связь. Считывание данных в приложение из источника производилось всякий раз по потребности. Запросы на выборку данных строились таким образом, чтобы получить только те записи, которые будут реально востребованы в приложении. Запись изменений из приложения в источник выполнялась для каждой измененной записи, либо для группы записей, либо, реже, пакетом для всех измененных в приложении записей.

Режим однонаправленного использования данных "только-на-чтение"

В этом режиме приложение единожды считывают данные и формируют по ним какие-либо отчеты в режиме "только-на-чтение", перебирая полученные записи последовательно по направлению от первой к последней.


⇐ Предыдущая страница| |Следующая страница ⇒