Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП 01. Базы данных. Часть 2 — копия.doc
Скачиваний:
33
Добавлен:
09.12.2018
Размер:
637.44 Кб
Скачать

1.3.6. Формирование списка возможных значений столбца

Свойство PickList объекта-столбца содержит список возможных значений столбца. Если это свойство заполнено, при редактировании ячейки столбца в ее правом углу появляется небольшая кнопка, нажатие на которую раскрывает список. Программист может заполнить это свойство как на этапе проектирования программы, так и во время ее выполнения. Это свойство особенно полезно, когда зависимые таблицы заполнены, а главную нужно заполнить значениями из зависимых.

Рассмотрим подробно на нашем примере.

Допустим, необходимо сформировать в поле ID_ARTIST главной таблицы C список возможных значений из подчинённой таблицы A. Для этого сначала нам необходимо создать ещё один компонент Table5 и настроить его на таблицу A, не связывая с главной таблицей. Добавьте все поля в редакторе полей Table5. Затем опишите обработчик события OnCellClick сетки DBGrid2 следующим образом:

procedure TForm1.DBGrid2CellClick(Column: TColumn);

begin

if Column.FieldName=’ID_ARTIST' then

with Table5 do {работаем с дополнительной таблицей}

begin

Column.PickList.Clear;

First; {идем в начало Table5}

while not eof do {пока не дошли до конца таблицы}

begin

Column.PickList.Add(Table5ID_ARTIST.AsString);

{заполняем список PickList значениями из другой таблицы}

Next;{переходим к след. записи.}

end;

end;

end;

Результат будет следующим (рис. 13):

Рис. 13. Результат формирования списка значений столбца

Задание на практическую работу № 3:

  1. Доработать свою базу данных таким образом, чтобы при выборе какой-либо строки в таблице значения полей показывались в отдельных компонентах формы (например, Label).

  2. При добавлении числовых данных в таблицу следить за границами вводимых значений. Если введенное число не удовлетворяет условиям, то выдавать соответствующее предупреждение.

  3. Сформировать список возможных значений столбца таблицы.

1.4. Практическая работа № 4: работа с наборами данных (компонент Table)

Доступ к данным таблиц любой БД в Delphi осуществляется с помощью компонентов, представляющих наборы данных (НД). Класс TDataSet является базовым классом для всех наборов данных, а его потомки предназначены для работы с различными СУБД и драйверами. В BDE это следующие компоненты:

  • Table — используется для доступа к данным одной таблицы;

  • Query — необходим для выполнения SQL-запросов к одной или нескольким таблицам и получения результатов запросов;

  • StoredProc — предназначен для работы с хранимыми процедурами БД.

В данной лабораторной работе будем рассматривать только компонент Table, его свойства и методы.

1.4.1. Открытие и закрытие набора данных

Состояние НД определяется его свойством State, доступным только для чтения во время выполнения программы. Начальное состояние любого НД — dsInactive (неактивен). Чтобы открыть НД, используется его метод Open или свойство Active, которому нужно присвоить значение True. После успешного открытия НД переходит в состояние dsBrowse (просмотр), a его курсор устанавливается на первую запись.

Чтобы закрыть НД, вызывается метод Close. Заметим, что если НД закрывается, находясь в режимах dsInsert (вставка) или dsEdit (редактирование), изменения, сделанные в текущей записи, не запоминаются. Закрыть НД можно также, присвоив значение False его свойству Active.