Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.04 Mб
Скачать

Лекция 7

Компоненты доступа к данным

1. Наборы данных

1.1. Состояния наборов данных

1.2. Режимы наборов данных

1.3. Доступ к полям

1.4. Особенности набора данных Table

1.5. Особенности набора данных Query

2. Объекты поля

2.1 Редактор полей

2.2. Операции с полями

3. Источник данных

Приложение к лекции 7. Визуальные компоненты для работы с данными

Компоненты доступа к данным являются невизуальными. В этой лекции мы рас­смотрим основные компоненты доступа к данным, которые используются при работе с локальными и удаленными БД.

Компоненты Session и Database, при­меняемые для управления соединениями с БД и транзакциями, будут изучены далее.

1. Наборы данных

Таблицы БД располагаются на диске и являются физическими объектами. Для операций с данными, содержащимися в таблицах, используются наборы данных. В терминах системы Delphi набор данных представляет собой совокупность записей, взятых из одной или нескольких таблиц БД. Записи, входящие в набор данных, отбираются по определенным правилам, при этом в частных случаях набор данных может включать в себя все записи из связанной с ним таблицы или не содержать ни одной записи. Набор данных является логической таблицей, с которой можно работать при выполнении приложения. Взаимодействие таб­лицы и набора данных напоминает взаимодействие физического файла и фай­ловой переменной.

Замечание

В отличие от Delphi, многие СУБД вместо термина набор данных используют термины выборка или таблица.

В Delphi для работы с наборами данных служат такие компоненты, как Table, Query, UpdateSQL, DecisionQuery или StoredProc. Компонент StoredProc исполь­зуется для вызова хранимых процедур при организации взаимодействия с уда­ленными БД, а компонент UpdateSQL обеспечивает работу с кэшированиями изменениями в записях. Эти компоненты рассматриваются при описании уда­ленных БД. Компонент DecisionQuery применяется при построении систем принятия решений.

Наиболее универсальными и, соответственно, часто используемыми являются компоненты Table и Query, задающие наборы данных. Они будут подробно описаны немного ниже.

Базовые возможности доступа к БД обеспечивает класс TDataSet, представляю­щий наборы данных в виде совокупности строк и столбцов (записей и полей). Этот класс содержит в себе основные средства навигации (перемещения) и ре­дактирования наборов данных.

Компоненты Table и Query являются производными от класса TDBDataSet — потомка класса TDataSet (через класс TBDEDataSet). Они демонстрируют схожие с базовыми классами характеристики и поведение, но каждый из них имеет и свои особенности. Здесь мы рассмотрим наиболее общие характеристики набо­ров данных. Большая часть свойств, методов и событий изучается на примере операций с наборами данных.

Расположение БД, с таблицами которой выполняются операции, указывает свойство DatabaseName типа string. Значением свойства является имя каталога, в котором находится БД (файлы ее таблиц), или псевдоним, ссылающийся на этот каталог. Если для БД определен псевдоним, то его можно выбрать через Инспектор объектов в раскрывающемся списке.

Замечание

Желательно задавать имя БД через псевдоним. Это заметно облегчает пере­нос приложения и файлов БД в другие каталоги и на другие компьютеры, т. к. для обеспечения работоспособности приложения после изменения расположе­ния БД достаточно изменить название каталога, на который ссылается псевдо­ним БД.

Для компонента Table использование свойства DatabaseName является единст­венной возможностью задать местонахождение таблиц БД. Для компонента Query дополнительно можно указать в запросе SQL путь доступа к каждой таб­лице.

Замечание

При задании расположения БД программным способом набор данных предва­рительно необходимо закрыть, установив его свойству Active значение False. В противном случае генерируется исключительная ситуация.

Вот пример, иллюстрирующий, как задается расположение БД:

Table1.Active:=false;

Table1.DatabaseName:='BDPlace';

Table2.Active:=false;

Table2.DatabaseName: ='С:\SALE\BD' ;

Для набора данных Tablel таблицы БД расположены в каталоге, на который указывает псевдоним BDPlace. Таблицы БД для набора данных Table2 располо­жены в каталоге C:\SALE\BD. Для определения и изменения псевдонима и его параметров удобно использовать такие программы, как Database Desktop или BDE Administrator (рассматриваются в лекции, посвященной инструментальным средствам).

В зависимости от ограничений и критерия фильтрации один и тот же набор данных в разные моменты времени может содержать различные записи. Число записей, составляющих набор данных, определяет свойство RecordCount типа Longint. Это свойство доступно для чтения при выполнении приложения. Управление числом записей в наборе данных осуществляется косвенно — путем отбора записей тем или иным способом, например, с помощью фильтрации или SQL-запроса (для компонента Query).

В приводимом примере производится перебор всех записей набора данных: