Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка БД.doc
Скачиваний:
6
Добавлен:
16.11.2019
Размер:
842.75 Кб
Скачать

Задание на лабораторную работу № 5:

  1. Создать отчет для вывода информации из связанных таблиц.

  2. Использовать компоненты QRExpr для отображения статистических данных (число записей в отчете, среднее значение или сумма по одному из полей и т.п.).

  3. Выполнить группирование данных в отчете.

1.6. Лабораторная работа № 6: sql-запросы (компонент Query)

SQL — язык структурированных запросов — предназначен для создания и работы с реляционными базами данных. Он значительно сокращает объем работ, который пришлось бы выполнять при использовании универсальных языков программирования. Команды SQL могут оперировать с таблицами БД как с едиными объектами и обрабатывать любое количество извлеченной или производной информации как один блок.

Для выполнения данной лабораторной работы необходимо знание основ SQL (стандарт SQL92). Очень доступно и в то же время достаточно глубоко язык SQL представлен в [4].

В технологии BDE для работы с языком SQL предназначен компонент Query. Этот компонент представляет собой набор данных, который содержит результат выполнения SQL-запроса к таблицам БД. Первоначальная настройка компонента производится следующим образом:

  • установите свойство DatabaseName (выберите алиас вашей БД);

  • для того чтобы во время разработки приложения проверить работу Query, откройте редактор свойства SQL и напишите любой запрос SELECT. После этого установите свойство Active в True.

Для вывода результатов запроса в DBGrid свяжите компонент Query с DBGrid с помощью DataSource.

При организации интерфейса программы предусмотрите возможность просмотра кода выполненного SQL-запроса. Рекомендуется отобразить и словесную формулировку запроса, внутри которой можно поместить поля для ввода его параметров (рис. 25).

Код SQL-запросов в тексте программы лучше описать с помощью массива констант типа String. Это позволит обращаться к нему в любом месте программы, указывая лишь имя массива и номер запроса. Кроме того, вносить изменения в код будет намного удобнее.

Рис. 25. Пример организации интерфейса приложения

Перед выполнением запроса закройте Query и очистите свойство SQL:

Query1.Close;

Query1.SQL.Clear;

Затем присвойте свойству SQL строку SQL-запроса (или элемент массива запросов):

Query1.SQL.Add('select rec_name from records r

where exists(select * from albums al, artists a

where al.id_artist= a.id_artist and a.a_name=:ANAME

and al.id_album=r.id_album)’);

Двоеточие перед именем ANAME говорит о том, что это имя подстановочного параметра SQL-запроса. Использование подстановочных параметров в SQL-ориентированных СУБД существенно ускоряет выполнение однотипных запросов, отличающихся друг от друга только значениями параметров. Это особенно заметно, когда выполнение запроса происходит в цикле несколько раз подряд.

Значения параметров запроса установите следующим образом:

Query1.ParamByName('ANAME').AsString:=Edit5.Text;

Внимание: для выполнения запросов, которые не возвращают результатов (например, UPDATE или INSERT), используйте метод

SQLDataSet1.ExecSQL();

Вызвав этот метод, очистите свойство SQL и задайте любой SQL-запрос, возвращающий результат (т.е. SELECT). В противном случае открыть набор данных Query будет невозможно.

Теперь откройте Query (рекомендуется выполнять эту операцию в блоке tryexceptend для обработки возможных исключительных ситуаций в случае, если запрос содержит ошибки):

Query1.Open;

Код выполненного SQL-запроса, т.е. значение свойства Query1.SQL.Text, выведите в отведенное для этого поле.