2007 г.
Марченко Антон Леонардович Интернет-Университет Информационных Технологий, INTUIT.ru
Назад Оглавление Вперёд Отступление о запросах
- Запросы, которые не возвращают записей (action query или КОМАНДНЫЕ ЗАПРОСЫ). Различаются:
- запросы обновления или Data Manupulation Language queries. Предназначаются для изменения содержимого базы данных
UPDATE Customers
Set CompanyName = 'NewHappyName'
WHERE CustomerID = '007'
INSERT INTO Customers (CustomerID, CompanyName)
VALUES ('007', 'NewHappyCustomer')
DELETE FROM Customers
WHERE CustomerID = '007' - запросы изменения или Data Definition Language queries. Предназначены для изменения структуры базы данных
CREATE TABLE myTable
(
Field1 int NOT NULL
Field2 varchar()
)
- Запросы, возвращающие значения из базы данных. Ниже представлены три примера запросов.
Возвращает значения полей для всех записей, представленных в таблице Customers . SELECT
CustomerID,
CompanyName,
ContactName,
Phone
FROM
Customers Возвращает значения полей для записей, представленных в таблице Customers , у которых значение поля Phone равно строке '333–2233 '. SELECT
CustomerID,
CompanyName,
ContactName
FROM
Customers
WHERE
Phone = '222–3322' Параметризованный запрос. Множество возвращаемых значений зависит от значения параметра, стандартно обозначаемого маркером '? ' и замещаемого непосредственно при выполнении запроса: SELECT
CompanyName,
ContactName,
Phone
FROM
Customers
WHERE
CustomerID = ?
Command
Команда – объект, представляющий один из двух классов: либо класс OleDbCommand , либо класс SqlCommand . Основное назначение объекта "Команда" – выполнение различных действий над Базой Данных (ИСТОЧНИКЕ ДАННЫХ) при использовании ОТКРЫТОГО СОЕДИНЕНИЯ. Сами же действия обычно кодируются оператором SQL или хранимой процедурой. Закодированная информация фиксируется с использованием объектов – представителей класса Parameter , специально разработанных для "записи" кодируемой в команде информации.
То есть после установления соединения с БД для изменения состояния этой базы может быть создан, соответствующим образом настроен и применен объект – представитель класса Command .
Объект "Команда" – стартовый стол для запуска непосредственно из приложения команд управления БД, которыми и осуществляется непосредственное управление БД. Команда в приложении обеспечивает взаимодействие приложения с базой данных, позволяя при этом:
- сохранять параметры команд, которые используются для управления БД;
- выполнять специфические команды БД
INSERT, UPDATE, DELETE , которые не возвращают значений; - выполнять команды, возвращающие единственное значение;
- выполнять команды специального языка определения баз данных DataBase Definition Language (DDL), например
CREATE TABLE ; - работать с объектом
DataAdapter , возвращающим объект DataSet ; - работать с объектом
DataReader ; - для класса
SqlCommand – работать с потоком XML; - создавать результирующие наборы, построенные на основе нескольких таблиц или в результате исполнения нескольких операторов.
Объект Command обеспечивает управление источником данных, которое заключается:
- в выполнении DML (Data Manipulation Language) запросов – запросов, не возвращающих данные (
INSERT, UPDATE, DELETE ); - в выполнении DDL (Data Definition Language) запросов – запросов, которые изменяют структуру Базы Данных (
CREATE ); - в выполнении запросов, возвращающих данные через объект
DataReader (SELECT) .
Объект представлен двумя классами – SqlCommand и OleDb Command . Позволяет исполнять команды на БД и при этом использует установленное соединение. Исполняемые команды могут быть представлены:
- хранимыми процедурами;
- командами SQL;
- операторами, возвращающими целые таблицы.
Объектa – представитель класса Command поддерживает два варианта (варианты методов определяются базовым классом) методов:
ExecuteNonQuery – обеспечивает выполнение команд, не возвращающих данные, например INSERT, UPDATE, DELETE ;ExecuteScalar – исполняет запросы к БД, возвращающие единственное значение;ExecuteReader – возвращает результирующий набор через объект DataReader .
Доступ к данным в ADO .NET с помощью Data Provider 'а осуществляется следующим образом:
- Объект – представитель класса
Connection устанавливает соединение между БД и приложением. - Это соединение становится доступным объектам
Command и DataAdapter . - При этом объект
Command позволяет исполнять команды непосредственно над БД. - Если исполняемая команда возвращает несколько значений,
Command открывает доступ к ним через объект DataReader . - Результаты выполнения команды обрабатываются либо напрямую, с использованием кода приложения, либо через объект
DataSet , который заполняется при помощи объекта DataAdapter . - Для обновления БД применяют также объекты
Command и DataAdapter .
Итак, в любом случае, независимо от выбранного поставщика данных, при работе с данными в ADO .NET используем:
Connection Object – для установки соединения с базой данных;Dataset Object – для представления данных на стороне приложения;Command Object – для изменения состояния базы.
Способы создания объекта Command :
- с использованием конструкторов и с последующей настройкой объекта (указание строки запроса и объекта
Connection ); - вызов метода
CreateCommand объекта Connection .
Листинг 10: html, txt
Назад Оглавление Вперёд
|
|