Читайте также:
|
|
Поставщики данных ADO.NET. ADO.NET не предлагает единого набора типов для связи со всеми СУБД. Вместо этого в ADO.NET имеются различ поставщики данных (провайдеры данных), каждый из к-ых оптимизирован для взаимод-вия с конкретн СУБД. Первая выгода этого подхода состоит в том, что можно запрограммировать особый поставщик данных для доступа к любым уникальн особенностям конкретн СУБД. Еще одна выгода — конкретн поставщик данных может напрямую подключиться к механизму соотв СУБД, не пользуясь междууровневым слоем отображения.По сути, поставщик данных — это мост м-ду приложением и источником данных.
Одной из ключевых идей, лежащих в основе модели поставщиков ADO.NET, явл расширяемость. Др словами, можно создавать собств поставщики для патентованных источников данных.
В рамках.NET Framework поставляется набор поставщиков данных, например, поставщик в стиле Oracle, Microsoft SQL Server и OLE DB/ODBC (рис.):
Рисунок – Уровни модели поставщиков данных
Поставщик SQL Server.NET Data Provider предоставляет оптимизированный доступ к БД Microsoft SQL Server (версии 7.0 и выше) и взаимодействует с ней напрямую по «родному» протоколу передачи данных SQL Server. Он расположен в пространстве имен System.Data.SqlClient. Поставщик OLE DB предоставляет доступ к любому источнику данных, который имеет драйвер OLE DB. Это включает базы данных SQL Server версий, предшествующих 7.0. Он расположен в пространстве имен System.Data.OleDb. Поставщик Oracle предоставляет оптимизированный доступ к базам данных Oracle (версии 8 и выше).
Примеч. Если ваше приложение работает с СУБД Microsoft Access, то следует подключить следующие директивы использования пространства имен:
using System.Data; using System.Data.OleDb;
Если ваше приложение работает с СУБД Microsoft SQL Server, то следует подключить следующие директивы использования пространства имен:
using System.Data; using System.Data.SqlClient;
Любой поставщик данных определяет набор типов, обеспеч-щих базовые функцион возможности. Базовые объекты поставщика данных ADO.NET, их базовые классы определены в пространстве имен System.Data.Common:
* Тип объекта→[Базовый класс ]→(Реализованные интерфейсы)→ Назначение *
Connection → [ SqlConnection; DbConnection; OracleConnection] → (IDbConnection) → Объект соединения. Позволяет подключаться к хранилищу данных и отключаться от него. Кроме того, объекты подключения обеспечивают доступ к соответствующим объектам транзакций
Command → [DbCommand; SqlCommand] → (IDbCommand) → Объект команды. Представляет SQL-запрос или хранимую процедуру. Кроме того, объекты команд предоставляют доступ к объекту чтения данных конкретн поставщика данных.
DataReader → [DbDataReader] → (IDataReader; IDataRecorder) → Объект чтения данных. Предоставляет однонаправленный доступ к данным только для чтения на стороне сервера.
DataAdapter → [DbDataAdapter; SqlDataAdapter; OracleDataAdapter] → (IDataAdapter; IDbDataAdapter) → Объект адаптера данных. Пересылает наборы данных из хранилища данных к вызывающему процессу и обратно. Адаптеры данных содержат подключение и набор из 4х внутрен объектов команд для выборки, вставки, изменения и удаления информации в хранилище данных.
Parameter → [DbParameter, SqlParametrs] → (IDataParameter; IDbDataParameter) → Объект параметра. Представл именованный параметр в параметриз. запросе
Transaction → [DbTransaction; SqlTransaction] → (IDbTransaction) → Объект транзакции. Выполняет транзакцию базы данных.
Хотя имена соотв-щих типов для разных поставщиков данных оказываются разными (напр, DbDataAdapter, SqlDataAdapter, OracleDataAdapter), каждый из таких объектов получается из одного и того же базового класса, что предполагает идентичность работы с ними.
Поведение объектов подключения. Необходимость подключения к источнику данных очень важна для любой архитектуры доступа к данным. ADO.NET позволяет организовать подключение к источнику данных с пом подходящ объекта подключения, к-ый входит в состав соотв-щего поставщика данных.
Чтобы открыть подключ, следует указать, какая инф-я необходима – напр, имя сервера, логин, пароль и т.д. Поскольку каждому целевому источнику подключения может понадобиться особый набор инф-и, позволяющий ADO.NET подключиться к источнику данных, выбран гибкий механизм указания всех параметров через строку подключения. Строка подключения содержит эл-ты с миним инф-ей, необход для установления подключ, в виде последовательности пар ключей-значений. Различные пары ключей-значений в строке подключ могут определять некотор конфигурируемые параметры, опред-щие поведение подключ. Сам объект подключ источника данных наследуется от класса SqlConnection и получает готовую логику, реализованную в базовых классах.
Приложение должно разделять дорогостоящий ресурс – открытое подключение, и совместно использовать его с др пользователем. Именно для этих целей введен пул подключений. По умолч пул подключений включен. При запросе ADO.NET неявно проверяет, имеется ли доступн неиспольз физич подключение к БД. Если такое подключение имеется, то она использует его. Для принятия решения имеется ли такое физич подключение или нет, ADO. NET учитывает загрузку приложения, и если поступает слишком много одновремен-ых запросов, ADO. NET может удерживать одновременно открытыми неск-ко физич подключений, т.е. увеличивать при необход-сти кол-во подключений. Подробнее:
Под классом SqlConnection имеется брокер, управляющий пулом открытых подключений. Он отвечает за увеличение или уменьшение реального кол-ва открытых подключ. Для класса брокера каждое запрошенное подключ уникально идентифицируется соотв строкой подключения. Поэтому, когда любое приложен запрашивает открытое подключ к одной и той же БД, оно в начале просматрив-т внутр кеш пула подключений, и если в нем есть доступное подключение, то используется оно. При отсутствии допустимого подключения создается новое, к-ое и передается приложению.
Дата добавления: 2015-09-10; просмотров: 92 | Поможем написать вашу работу | Нарушение авторских прав |