Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Вебмастеру -> Сеппа Д. -> "Microsoft ADO.NET" -> 70

Microsoft ADO.NET - Сеппа Д.

Сеппа Д. Microsoft ADO.NET — М.: Русская Редакция, 2003. — 640 c.
ISBN 5-7502-0223-2
Скачать (прямая ссылка): mcrsftado2003.pdf
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 260 >> Следующая

В период тестирования бета-версии Visual Studio Л' Г.Т я разговаривал с одним программистом, скептически относящимся к переходу на ADO.NET. Пытаясь отвергнуть новую объектную модель, он спросил: «Могу ли я обновлять БД с помощью хранимых Когда я улыбнулся и ответил: он был просто шокирован. Я практически слыиш]. как пару секунд вертелись шарики в его мозгу, прежде чем он спросил: «Как это?»
Отчасти разработчик был ошеломлен потому, что администраторы БД создают отдельные хранимые процедуры для обновления, вставки и удаления записей. Таким образом, чтобы в объектной модели доступа к данным появились RAD-воз-можности по передаче изменений с хранимых процедур, модель
должна позволять создавать отдельные хранимые процедуры для обновления, вставки и удаления данных.
Именно это и делает объект DataAdapter. Его четыре свойства содержат объекты Command: одно свойство для запроса на выборку данных, второе — для передачи отложенных изменений, третье — для передачи отложенных вставок и четвертое — для передачи отложенных удалений. Для любого из этих объектов Command можно указать собственные командные запросы и хранимые процедуры, а также параметры, которые будут перемещать данные из объекта DataSet в хранимую процедуру и обратно.
Разработчики иногда ведут себя, как стадо упрямцев (мне, человек), из этой среды, позволительны такие высказывания). Нам нравится контроль и производительность, но не менее — и простота использования. Объект DataAdapter предоставляет все это. Вы можете написать собственную логику обновления или попросить ADO.NET сгенерировать командные запросы, аналогичные запросам, скрыто генерируемым моделями ADO и DAO. Вы можете даже воспользоваться некоторыми средствами Visual Studio и сгенерировать логику обновления в период разработки — такой вариант сочетает в себе удобство использования, контроль и производительность.
Примеры кода обновления, а также обсуждение реального механизма обновления БД при помощи объектов DataAdapter приводятся в главе 10. Здесь же ос-
ГЛАВА 5 Получение данных с помощью объектов DataAdapter
137
новное внимание уделено структуре объекта DataAdapter и тому, как с его помощью выбирать результаты запросов.
Анатомия объекта DataAdapter
Теперь, когда вы получили некоторое представление о функциональности объекта ikitiL Шарит я расскажу о его структуре — это позволит вам понять принципы его
работы.
Назначение объекта DataAdapter - упростить запись результатов запроса в ¦объекты DataSet и DataTable. Как говорилось в главе 4, объект Command позволяет просматривать результаты запроса через объект Da'viRefPc'. Объект DataAdapter состоит из группы объектов Command и набора сопоставляющих свойств, определяющего порядок взаимодействия объекта DataAdapter с объектом DataSet. На рис. 5-1 показана структура объекта DataAdapter.
DatsMapter
Ы ТаЬШарріпдз *•>—¦--
DataSet
ColumnMappings
SeiectCommand
її
Свойства
|~*| UpdateCemmand
Свойства
W insartCommand
0
Свойства
DeleteCommand
Свойства
L Таблицы
— —* Ы
Столбцы
Рис. 5-1. Структура объекта DataAdapter
Дочерние команды
Когда вы с помощью объекта DataAdapter записываете результаты запроса в объект
DataSet, объект ЯдЛа4йЦрГегвзаимодействует с БД при помощи объекта Command. Внутренне DataAdapter с помощью объекта DataReader выбирает результаты и затем копирует полученные данные в новые записи объекта DataSet. Грубо говоря, этот процесс иллюстрируется фрагментом кода, приведенным в начале главы.
Объект Command, при помощи которого DataAdapter выбирает результаты запроса, указан в свойстве SelectCommand объекта DataAdapter.
6-5958
13с Часть II Подключаемся: использование поставщика данных NET
Кроме того, у объекта DataAdapterecTb другие свойства, содержащие объекты: Command: InsertCommand, UpdateComma/iai DeleteCommand. DataAdapterиспользует эти объекты Command для передачи в БД изменений, хранящихся в объекте DataSet, Подробнее об этом - в главе 10.
Набор TabieMappings
По умолчанию объект DataAdap^предполагает, что столбцы объекта DataReader соответствуют столбцам объекта DataSet. Тем не менее иногда требуется, чтобы схема объекта DataSet отличалась от схемы БД. Возможно, в объекте DataSet вы захотите дать столбцу БД другое имя. hi^п.юогчикп традиционно переименовывают столбцы в запросах при помощи псевдонимов. Например, если в таблице Employees есть столбцы EmplD: LNamc и FName, можно воспользоваться в запросе псевдонимами и изменить в наборе результатов имена этих столбцов на iou-ell >, UisiN.ime и l-'ir-iNanu- соответственно;
SELECT tiny ID AS E'nployeelD, LNaifle AS LastName, FNaine AS FirstName
FROM Employees
Объект DaiaAiiaiii^ предоставляет механизм, позволяющий сопоставить результаты запроса со структурой объекта DataSet — набор TabieMappings.
В приведенном выше запросе используется таблица с именами столбцов типа EmpID. LName и FName. Продолжим этот пример: предположим, что таблице БД дано еще более невразумительное имя типа Нам нужно сопоставить
данные этой таблицы с таблицей Employees нашего объекта DataSet, имена столбцов которой гораздо более понятны — EmployeelD, LastName и FirstName. Набор TabieMappings объекта DataAdapter позволяет организовать такое сопоставление между БД и объектом DataSet.
Предыдущая << 1 .. 64 65 66 67 68 69 < 70 > 71 72 73 74 75 76 .. 260 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100