Несмотря на то, что в объекте DataSet может быть несколько связанных таблиц, DataAdapter не имеет в SQL-запросах или хранимых процедурах команд (параметров), отражающих эти реляционные связи. Да это и физи-
П. 874 чески невозможно — ведь, как мы уже раньше отмечали, DataAdapter рабо тает только с одной таблицей в базе данных и с одной таблицей в наборе данных DataSet. Для создания и хранения реляционных связей в DataSet используется другой объект — DataRelation. Кроме возможности создавать и хранить реляционные связи данный объект позволяет управлять ограни чениями на работу с таблицами набора данных (например, реализовать кас кадное обновление или удаление), а также обеспечивает навигацию в до черней таблице при перемещении по записям в родительской таблице.
Например, представьте, что вам нужно получить данные из двух связанных таблиц базы данных Northwind: Customers и orders ("Клиенты" и "Заказы") и показать их в одном объекте DataGrid. Раньше для этого понадобилось бы выполнить объединение этих двух таблиц в одну, например, с использова нием оператора join в SQL-запросе, чтобы получить единственный набор записей Recordset и затем его связать с DataGrid. Теперь достаточно опре делить два Объекта DataAdapter один, чтобы заполнить таблицу Customers ("Клиенты") в DataSet и второй, чтобы заполнить таблицу Orders ("Зака зы"). В DataSet с использованием объекта DataRelation можно указать, что записи таблицы orders связаны с записями таблицы Customers полем Customerld, после чего связать DataSet с объектом DataGrid. Теперь, имея заполненный объект DataSet и отключившись от исходной базы данных, вы по своему желанию можете работать как с каждой таблицей отдельно, так и, вызвав необходимые свойства и методы объекта DataRelation, со связанной парой таблиц. Этого в принципе невозможно было сделать с объектом Recordset, так как он заполнялся информацией из уже объединенного на бора записей. Такая возможность является неоспоримым преимуществом Объекта DataSet над объектом Recordset.
Опубликовал vovan666
May 22 2013 12:58:28 ·
0 Комментариев ·
4417 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.