Программирование в ADO.NET
Классы каркаса, предназначенного для работы с базами данных, собраны в ADO.NET. Класс DataSet (Набор данных) позволяет работать с реляционными данными реляционным же способом, независимо от того, есть ли в текущий момент соединение с источником данных. Разъединенный (disconnected) доступ к данным становится все более значимым в многоярусном и Internet-ориентированном мире данных. При использовании такого типа доступа к данным необходимо установить соединение с базой данных только для изменения или получения ее содержимого. Конечно, при желании, можно работать и обычным соединенным (connected) способом.
Источники данных ADO.NET позволяют задавать команды непосредственно источнику данных. При этом не используются промежуточные объекты, такие, как объекты OLEDB (OLE для баз данных), которые находятся между ADO и источником данных. Класс DataAdapter эмулирует источник данных (как набор команд базы данных) и соединение с этим источником данных. Класс DataAdapter реализует интерфейс IDataAdapter, являющийся связующим звеном между объектом DataSet (Набор данных) и источником данных. Различия между источниками данных скрыты интерфейсом IDataAdapter. Источники данных OLEDB (OLE для баз данных) позволяют использовать вложенные (nested) транзакции; а источники данных SqlServer этого не позволяют.
Источники данных .NET передают данные в набор данных или в устройство считывания данных. Набор данных– резидентная упрощенная реляционная база данных, не соединенная прямо ни с какой другой базой данных. Набор данных можно даже преобразовать в документ XML, и наоборот. Это позволяет работать с данными как с реляционными или как с иерархическими XML-данными. Устройства считывания данных моделируют обычный способ работы с базами данных.
Классы доступа к данным, поставляемые вместе с каркасом, находятся в пространствах имен System::Data (Система: Данные), System::Data::SqlClient, System:: Data::OleDb (Система::Данные::ОЬЕ для баз данных), System::Data::Common (Система::Данные::Обшие) и System::Data::SqlTypes. Пространства имен OleDb (OLE для баз данных) и Sql содержат классы, используемые при работе с источниками данных OleDb (OLE для баз данных) и SqlServer соответственно. Уже разработан источник данных ODBC, а другие драйверы доступа будут созданы в ближайшем будущем.
В этой главе мы изменим реализацию классов Customer (Клиент) и Hotel (Гостиница) для того, чтобы ближе познакомиться с использованием SQL Server. Для демонстрации использования XML в наш пример туристического агентства Acme Travel Agency добавим возможность бронирования авиабилетов.
В своих примерах мы будем использовать SQL Server 2000 и источник данных SQL Server. Несмотря на это, большинство материала, изложенного в главе, можно отнести и к источнику данных OleDb (OLE для баз данных).
Кроме того, для понимания примеров читателю необходимо понимать принципы работы баз данных.
Базы данных, используемые в примерах
В главе предполагается, что SQL Server установлен в конфигурации Local System account, причем в качестве режима аутентификации выбран Mixed Mode (Смешанный режим). Предполагается, что имя пользователя – sa, а поле пароля не заполнялось. В некоторых примерах используется база данных Northwind Trader, инсталлируемая в качестве образца базы данных в составе SQL Server. Кроме того, в некоторых примерах используются базы данных HoteLBroker (Посредник, бронирующий места в гостинице) и AirlineBroker, созданные исключительно как иллюстративный материал к данной книге.
Некоторые из иллюстративных программ изменяют используемые базы данных, в то время как в других предполагается, что эти базы имеют первоначальный вид. В результате какие-то программы не будут работать подобающим образом, пока вы не восстановите исходный вид используемых в них баз данных. Это можно сделать с помощью прилагаемых к программам макросов SQL. Более подробную информацию можно найти в файле readme.txt.