Обработка исключительных ситуаций. Последовательный доступ к данным с использованием технологии BDE, страница 23


5.    Проверка работы фильтрации подчиненных таблиц. Запустим проект на выполнение и будем перемещать указатель текущей записи в таблице Клиенты. При этом в таблице Заказы будут отображаться только записи, относящиеся к текущему значению поля КодКл. Аналогично перемещение указателя текущей записи в таблицах Товары и Заказы будет управлять отображением записей в таблице СтрокиЗаказов. На рис. 44 приведено окно приложения в момент, когда последней просматривалась таблица Товары.

Рисунок 44Окно приложения при фильтрации таблиц Заказы и СтрокиЗаказов в соответствии с положением указателя текущей записи в главных таблицах


ЛАБОРАТОРНАЯ РАБОТА № 9. Реализация запросов к БД НА ОСНОВЕ технологии ADO

Цель работы: получение навыков создания процедур, реализующих запросы к БД Access с использованием технологии ADO.

Задание: в проект СП, созданный в лабораторной работе № 7, добавьте процедуры, обеспечивающие выполнение запросов в соответствии с вариантом индивидуального задания.

Пример выполнения работы

1.  Создание основы проекта. Создадим копию папки, содержащей проект лабораторной работе № 7, и переименуем эту папку. Для компонента ADOConnection в свойстве ConnectedString подкорректируем путь к БД Access в связи с переносом БД в новую папку.


2.    Модификация интерфейса проекта. Поместим в окно формы компонент PageControl (страница Win32 палитры компонентов). С помощью команды NewPage контекстного меню этого компонента образуем четыре страницы. Свойству Caption каждой из страниц дадим имена Таблицы БД (TabSheet1), Запросы на выборку (TabSheet2), Перекрестные запросы (TabSheet3) и Активные запросы (TabSheet4). С помощью окна ObjectTreeView перекрепим от Form1 к TabSheet1 все объекты Label, DBGrid и DBNavigator (всего 12 объектов). Полученное дерево объектов приведено на рис. 45.

Рисунок 45Вид окна дерева объектов после перезакрепления объектов

Поместим на страницу TabSheet2 компонент ADOQuery (страница ADO палитры компонентов), который обеспечивает применение запросов SQL на выборку при работе с данными через ADO. Соединение с БД задается значением ADOConnection1 для свойства Connection.

На следующем этапе модификации интерфейса перенесем на форму и настроим компонент DataSource5, для свойства DataSet которого установим значение ADOQuery1.

Для представления результата выполнения запроса в виде таблицы поместим на страницу TabSheet2 компонент DBGrid5. Установим значение DataSource5 свойства DataSource этого компонента.

Поместим на страницу TabSheet2 компонент DBNavigator5, который предназначен для перемещения по записям набора данных. Связь с набором данных устанавливается значением DataSource5 свойства DataSource этого компонента.


Поместим на страницу командную кнопку Button1, для свойства Caption которой установим значение Заказы заданного клиента. Вид страницы TabSheet2 приведен на рис. 46.

Рисунок 46Вид страницы TabSheet2 проекта

В существующую процедуру Form1Activate добавим оператор TabSheet1.Show, чтобы при активации формы отображалась страница Таблицы БД.


3.    Создание процедуры для выполнения запроса на выборку с параметром. Свяжем с кнопкой Button1 запуск процедуры, реализующей получение списка заказов для клиента, код которого задается в диалоговом окне.


Общий вид процедуры, реализующей запрос на выборку с параметром, приведен на рис. 47.

Рисунок 47Структура процедуры, реализующей запрос на выборку с параметром


Создадим процедуру, приведенную на рис. 47, и в качестве строки «Сообщение для ввода» напишем строку Введите код клиента.

Для получения текста запроса на языке SQL создадим в СУБД Access искомый запрос. Вид данного запроса в режиме конструктора приведен на рис. 48.

Рисунок 48Запрос на выборку с параметром в режиме конструктора