Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИОСУ.doc
Скачиваний:
33
Добавлен:
19.03.2015
Размер:
14.55 Mб
Скачать

34. Назначение компонента tQuery- Основные свойства и методы.

TQuery - ком-т формирования набора данных по SQL-запросу. Набор данных TQuery может включать записи более чем одной таблицы.

Компонент TQuery порожден от родительского класса TDBDataSet и наследует от него основные методы, события и свойства. Он имеет также собственные свойства, методы и события.

Свойства

property Constrained: Boolean; Если содержит True, в изменяемом НоборДанных на записи, вводимые или изменяемые пользователем, накладываются ограничения секции WHERE оператора SELECT

property DataSource: TDataSource; Содержит ссылку на компонент TDataSource, используемый для формирования параметрического запроса

property Local: Boolean; Содержит True, если TQuery работает с локальной или файл-серверной БД

property ParamCheck: Boolean; Если содержит True, список параметров будет автоматически обновляться при изменении запроса на этапе прогона программы

property Params[Index: Word]: TParams; Содержит массив объектов-параметров класса TParams

property Prepared: Boolean; Содержит True, если запрос был подготовлен к выполнению методом Prepare

property RequestLive: Boolean; Содержит True, если TQuery должен возвращать изменяемый НД

property RowsAffected: Integer; Содержит количество записей, которые были изменены или удалены в результате выполнения запроса

property SQL: TStrings; Содержит текст SQL-запроса

property Text: PChar; Содержит текст SQL-запроса, который был в действительности передан BDE

property UniDirectional: Boolean; Если содержит True, курсор НД может перемещаться только вперед. Такие НД требуют меньше памяти и быстрее обрабатываются.

Свойство Params содержит набор ссылок на объекты класса TParams. Наиболее важные свойства и методы этого класса перечислены:

property Items[Index: Word]: TParam; Содержит массив объектов-параметров класса ТРаram. Это свойство для класса TParams является свойством по умолчанию. Значение параметра Index должно лежать в диапазоне от 0 до Count-1

property ParamValues[constParamName: String]: Variant Открывает доступ к значению параметра по его имени

property Count: Integer; Содержит количество параметров в массиве Items

Методы

Наиболее важные методы компонента TQuery представлены:

procedure ExecSQL; Выполняет запросы INSERT, UPDATE, DELETE и CREATE

TABLE. Для выполнения запроса SELECT вместо него используется

метод Open или свойство Active

procedure GetDetailLinkFields(MasterFields, DetailFields: TList); override; Заполняет список MasterFields полями главной таблицы и

список DetailFields полями детальной таблицы

function ParamByName(const Value:String): TParam; Открывает доступ к параметру по его имени Value

procedure Prepare; Передает BDE запрос для того, чтобы сама библиотека BDE и удаленный сервер БД распределили свои ресурсы и дополнительно оптимизировали запрос.

procedure UnPrepare; Отменяет последствия вызова метода Prepare

35. Теоретические языки запросов. Sql - структурированный язык запросов. Основные методы его использования.

SQL – это язык, который обеспечивает доступ к информации и позволяет

управлять реляционными базами данных. Язык SQL – Structured Query Language– структурированный язык запросов. Язык SQL оперирует данными, представленными в виде логически связанных таблиц.

Язык SQL используется на разных платформах, позволяет работать с ре-

ляционными базами данных различных форматов.

Ср-ва SQL применимы для выполнения операций с локальными и удаленными БД. Основное достоинство реляц способа доступа – небольшая загрузка сети, т.к. по сети передаются только запросы и результат их выполнения. Наиболее эффективны они при работе с удаленными БД. В локальн БД с помощью SQL-запросов можно:

-формировать состав полей НД при выполнении приложения

-включать в НД поля и записи одной или нескольких таблиц

-отбирать записи по сложным критериям

-сор-ть НД по люб полю, в том числе и неиндексированному

-осущ-ть поиск данных по полному или частичному совпадению критерия поиска со знач поля записи.

Язык SQL определяет набор операторов (команд), типы данных, набор

встроенных функций. Так как язык SQL предназначен для манипулирования

данными в реляционных базах данных, определения структуры баз данных и для управления правами доступа к данным в многопользовательской среде, то в него в качестве составных частей входят:

язык манипулирования данными (Data Manipulation Language, DML);

язык определения данных (Data Definition Language, DDL);

язык управления данными (Data Control Language, DCL).

Это не отдельные языки, а различные команды одного языка. Деление

проведено только лишь с точки зрения функционального назначения команд.

Язык манипулирования данными (DML, ЯМД) состоит из четырёх основ-

ных команд:

SELECT (выбрать) – извлечь данные из одной или нескольких таблиц;

INSERT (вставить) – добавить строки в таблицу;

UPDATE (обновить) – изменить значения полей в таблице;

DELETE (удалить) – удалить строки из таблицы.

Язык определения данных (DDL, ЯОД) используется для создания

(CREATE), изменения (ALTER), удаления (DROP) структуры базы данных и ее составных частей – таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и хранимых процедур. Примеры:

CREATE INDEX – создать индекс; ALTER INDEX – модифицировать индекс; DROP INDEX – удалить индекс; DROP TABLE – удалить таблицу;

Язык управления данными (DCL) используется для управления правами

доступа к данным и для управления выполнением процедур в многопользовательской среде. Более точно его можно было бы назвать языком управления доступом. Он состоит из двух основных команд:

GRANT – дать права; REVOKE – забрать права.

С точки зрения прикладного интерфейса существуют две разновидности

языка SQL: интерактивный и встроенный. Интерактивный SQL позволяет в интерактивном режиме вводить запросы, посылать их на выполнение и получать результаты в предназначенном для этого окне. Интерактивный SQL используется в специальных утилитах (например, SQL Explorer).

Встроенный SQL применяется в прикладных программах, написанных на

других языках программирования, позволяет посылать запросы и обрабатывать полученные результаты.

Использование

Реляционные базы данных имеют мощный теоретический фундамент, ос-

нованный на математической теории множеств. Основными операциями над

отношениями являются: выборка (Restriction), проекция (Projection), соединение (Join), объединение (Union), пересечение, разность, декартово произведение (Cross Join).

Операции выборки и проекции являются унарными, поскольку они работают с одним отношением. Операция выборки – это построение горизонтального подмножества, т.е. получение части строк, обладающих заданными свойствами. Операция выборки работает с одной таблицей и позволяет получить либо все, либо те строки таблицы, которые удовлетворяют заданному условию.

Например, вывести все строки таблицы country:

SELECT * FROM country

Операция проекции – это построение вертикального подмножества отно-

шения, т.е. выделение подмножества столбцов таблицы. Операция проекции применяется к одной таблице и в качестве результата выдаёт таблицу, у которой оставлена только часть атрибутов и исключены строки-дубликаты.

Например, вывести названия фирм, город и страну из таблицы vendors:

SELECT VendorName,City,Country FROM vendors

На практике очень часто требуется получить подмножество столбцов и

строк таблицы – выполнить комбинацию выборки и проекции. Для этого достаточно перечислить столбцы таблицы и наложить ограничения на строки. Например, получить фамилии работников, которых зовут Roger:

SELECT firstName,lastName FROM employee

WHERE firstName="Roger"

Декартово произведение R×S двух отношений (двух таблиц) определяет

новое отношение – результат сцепления каждой записи из отношения R с каждой записью из отношения S.

Пусть таблица R имеет поля а1, а2 и таблица S имеет поля b1, b2. Оператор SELECT R.a1, R.a2, S.b1, S.b2 FROM R,S сформирует результи-

рующую таблицу, причём если одна из исходных таблиц имеет N записей и K полей, а другая – M записей и L полей, то их декартово произведение будет содержать N×M записей и K+L полей.

Операция объединения (UNION) позволяет объединить результаты от-

дельных запросов по нескольким таблицам в единую результирующую таблицу. Таким образом, предложение UNION объединяет вывод двух или более SQL-запросов в единый набор строк и столбцов. При этом результаты запросов должны быть совместимы, т. е. иметь одинаковое количество полей с совпадающими типами данных:

Пример. Из таблиц employee и country получить список работников и заказчиков, проживающих во Франции:

SELECT first_name,last_name,job_country FROM employee

WHERE job_country = "France"

UNION

SELECT contact_first,contact_last,country FROM customer

WHERE country = "France"