русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Несвязный уровень взаимодействия ADO.NET


Дата добавления: 2015-06-12; просмотров: 1025; Нарушение авторских прав


При работе на несвязном уровне ADO.NET по-прежнему нужно использовать объекты соединения и команды. Кроме того, необходимо использовать специальный объект, называемый адаптером данных (и расширяющий абстрактный DbDataAdapter), чтобы извлекать и обновлять данные.

Объект адаптера данных поставщика данных обрабатывает соединение с базой данных автоматически. С целью расширения возможностей масштабируемости адаптеры данных сохраняют соединение открытым минимально возможное время. Как только вызывающая сторона получает объект DataSet соединение с СУБД разрывается, и вызывающая сторона остается со своей локальной копией удаленных данных. В сущности, DataSet позволяет клиенту имитировать постоянно открытое соединение, в то время как реальные операции выполняются с наборами данных, находящимися в памяти.

В отличие от связного слоя, данные, полученные с помощью адаптера данных, не обрабатываются с помощью объекта чтения данных. Вместо этого для перемещения данных между вызывающей стороной и источником данных объекты адаптера данных (DataAdapter) используют объекты DataSet. Тип DataSet – это контейнер, используемый для любого числа объектов DataTable, каждый из которых содержит коллекцию объектов DataRow и DataColumn.

В рамках отсоединенной модели ADO.NET объект DataSet становится важным элементом технологии отсоединенного доступа. Объект-представитель DataSet представляет множество таблиц.

Для успешного решения задачи представления в DataSet есть все необходимое. Его функциональные возможности позволяют загрузить в локальное хранилище на стороне приложения данные из любого допустимого для ADO.NET источника: SQL Server, Microsoft Access, XML-файл.

В числе данных – членов этого класса имеется набор Tables. Объект DataSet может содержать таблицы, количество которых ограничивается лишь возможностями набора Tables.



Для каждой таблицы – элемента набора Tables может быть (и, естественно, должна быть) определена структура таблицы. В случае, когда приложение взаимодействует с реальной базой данных, структура таблиц в DataSet должна соответствовать структуре таблиц в базе данных. DataSet – это находящийся в памяти объект ADO.NET, используемый в приложении для представления данных; он определяет согласованную реляционную модель базы данных, которая не зависит от источника содержащихся в нем данных. Степень полноты модели определяется задачами, которые решает приложение.

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

Содержащуюся в объекте DataSet информацию можно изменять независимо от источника данных (от самой БД). Соответствующие значения формируются непосредственно в программе и добавляются в таблицы.

При работе с базой данных данные могут собираться из разных таблиц, локальное представление которых обеспечивается различными объектами – представителями классов DataSet. В классе DataSet определено множество перегруженных методов Merge, которые позволяют объединять содержимое нескольких объектов DataSet.

Любой объект-представитель класса DataSet позволяет организовать чтение и запись содержимого (теоретически – информации из базы) в файл или область памяти. При этом можно читать и сохранять:

- только содержимое объекта (собственно информацию из базы);

- только структуру объекта – представителя класса DataSet;

- полный образ DataSet (содержимое и структуру).

Таким образом, DataSet является основой для построения различных вариантов отсоединенных объектов – хранилищ информации.

Класс DataSet – класс и не абстрактный и не интерфейс. Это значит, что существует множество вариантов построения отсоединенных хранилищ.

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

Можно также создать объект – представитель класса DataSet оригинальной конфигурации и добавить непосредственно к этому объекту все необходимые составляющие в виде таблиц (объектов – представителей класса Table) соответствующей структуры и множества отношений Relation.

Объект – представитель класса DataSet и сам по себе, без сопутствующего окружения, представляет определенную ценность. Дело в том, что информация, представляемая в приложении в виде таблиц, не обязательно должна иметь внешний источник в виде реальной базы данных. Ничто не мешает программисту обеспечить в приложении чтение обычного "плоского" файла или даже "накопить" необходимую информацию посредством интерактивного взаимодействия с пользователем, используя при этом обычный диалог. В конце концов, база данных – это один из возможных способов организации информации (а не только ее хранения!). Не случайно DataSet представляет отсоединенные данные.

База данных характеризуется множеством таблиц и множеством отношений между таблицами.

Объявление класса DataSet включает:

- набор (возможно, что пустой) объявлений классов DataTable (фактически это описание структуры таблиц, составляющих данный класс DataSet);

- набор объявлений классов DataRelations, который обеспечивает установку связей между разными таблицами в рамках данного DataSet.

Структура DataSet может в точности повторять структуру БД и содержать полный перечень таблиц и отношений, а может быть частичной копией БД и содержать, соответственно, лишь подмножество таблиц и подмножество отношений. Все определяется задачей, решаемой с помощью данного DataSet.

Объект – представитель данного класса DataSet обеспечивает представление в памяти компьютера фрагмента данной БД. Этот объект является локальным представлением (фрагмента) БД.

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

При этом DataAdapter является центральным компонентом архитектуры отсоединенного доступа.

Объект DataAdapter – составная часть провайдера данных. Это подсоединенная компонента объектной модели ADO.NET. Он обеспечивает связь между источником данных и объектом DataSet и используется для двух целей – заполнения объекта DataSet и модификации источника данных.

Функциональные возможности DataAdapter реализуются за счет метода Fill(), который изменяет данные в DataSet. При выполнении метода Fill() объект DataAdapter заполняет DataTable или DataSet данными, полученными из БД.

После обработки данных, загруженных в память, с помощью метода Update() можно записать модифицированные записи в БД. Метод Update() позволяет изменять данные в источнике данных с целью достижения обратного соответствия данных в источнике данных по отношению к данным в DataSet.

Фактически, DataAdapter управляет обменом данных и обновлением содержимого источника данных.

DataAdapter предоставляет набор команд для подключения к БД и модификации данных.

Достойны особого внимания четыре свойства этого класса, фактически представляющие команды БД. Через эти команды объект DataAdapter и воздействует на DataSet и БД.

1. SelectCommand – содержит текст (строку sql) или объект команды, осуществляющей выборку данных из БД. При вызове метода Fill() эта команда выполняется и заполняет объект DataTable или объект DataSet.

2. InsertCommand – содержит текст (строку sql) или объект команды, осуществляющий вставку строк в таблицу.

3. DeleteCommand – содержит текст (строку sql) или объект команды, осуществляющий удаление строки из таблицы.

4. UpdateCommand – содержит текст (строку sql) или объект команды, осуществляющий обновление значений в БД.



<== предыдущая лекция | следующая лекция ==>
Связный уровень взаимодействия ADO.NET | Порядок выполнения работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.194 сек.