Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Pascal / Delphi / Методичка - Організація баз даних і знань.doc
Скачиваний:
82
Добавлен:
02.05.2014
Размер:
631.3 Кб
Скачать

Лабораторна робота № 4 Обробка полів таблиць бази даних

Мета:виконання основних операцій з обробки полів однієї таблиці, або декількох зв’язаних таблиць.

Завдання:

  1. Для будь-якого набору даних створити поле, що обчислюється.

  2. Для набору даних, зв’язаного з підпорядкованою таблицею бази даних (ТБД), створити нове поле вибору даних для автоматичного занесення інформації в підпорядковану ТБД з головної таблиці (зв’язок типу “один-до-багатьох”).

  3. Розробити форму для роботи з двома наборами даних, один з яких має lookup-поле та поле, що обчислюється.

  4. Використати редактор стовпців (Columns Editor) для зміни параметрів компонентівTDBGrid.

Обов’язкові засоби:TFild, TFildEditor.

Зміст звіту.

  1. Опис розробленої форми.

  2. Висновки по роботі.

Порядок виконання роботи Створення полів, що обчисляються

Для створення поля, що обчисляється за значеннями інших полів, необхідно:

  1. У редакторі полів створити нове поле, помітивши його як Calculated. Для цього потрібно за допомогою миші зробити поточним необхідний НД, натиснути праву кнопку миші, вибрати в менюField Editor, знову натиснути праву кнопку миші і вибрати в менюNew Field. Потім у вікні діалогу необхідно зазначити ім'я поля, його тип (Type) і для текстових полів - довжину (Size). Для нового поля буде створений компонентTField, доступ до якого можна здійснювати в редакторі полів.

  2. Для компонента НД, до якого належить поле, що обчисляється, необхідно визначити оброблювач події OnCalcFields. Наприклад, необхідно занести в полеVychoslНДTable1значення 'Так', якщо в поліPresentцього запису міститься значенняTrue. У противному випадку в полеTable1Vychoslзанести порожнє значення.

procedure TGridForm. TablelCalcFields(DataSet: TDataSet);

begin

if Table1Present. Value then

Table1Vychosl.AsString := 'Так'

else

Table1Vychosl.AsString:= ";

end;

Подія OnCalcFieldsвиникає щоразу, коли курсор (покажчик запису) переміщується в НД від запису до запису. Вона виникає і при ініціалізації НД (після відкриття), а також після фільтрації записів у НД, що також пов'язано зі зміною положення покажчика запису.

Крім того, якщо властивість набору даних AutoCalcFieldsвстановлена вTrue, подіяOnCalcFieldsнаступає також і при модифікації значень інших полів у режимахdslnsertіdsEditданого НД або НД, реляційно з ним пов'язаного (коли обмеження цілісності явно встановлені в самій ТБД. ).

Процедура-оброблювач події OnCalcFieldsреалізує алгоритм обчислення значення поля або групи полів. У цьому оброблювачі значення може бути присвоєно тільки полю, що обчислюється, але не полю, визначеному в структурі таблиці БД.

Створення полів вибору даних (lookup - полів).

Поля вибору даних одного НД містять значення поля (полів) з іншого НД. НД-джерело поля вибору зв’язується по ключу з НД-власником поля вибору даних. Поле вибору даних доступне тільки для читання. Звичайно НД-джерело і НД-власник поля вибору даних зв’язані реляційним відношенням “один-до-багатьох“, рідше “один-до-одного“.

Для визначення поля вибору даних необхідно створити нове поле в редакторі полів, зразу ж встановивши радіо-групу FieldTypeв значенняLookup.

Далі встановлюються значення властивостей:

DataSet – ім’я НД-джерела значень для поля вибору даних;

KeyFields– індексні поля НД-власника поля вибору даних. За цими полями НД-власник з’єднується з НД-джерелом значень поля вибору даних. Якщо в індексі є декілька полів, вони перераховуються через крапку з комою;

LookupKeys– індексні поля НД-джерела значень для поля вибору. За значеннями цих індексних полів встановлюється зв’язок набору-джерела зі значеннями індексних полів НД-власника поля вибору (вони вказані в параметріKeyFields). Якщо в індексі є декілька полів, вони перераховуються через крапку з комою;

Result Field– поле НД-джерела, що повертається в якості результату. Необхідно, щоб тип поля, що створюється, співпадав з типом поля результату.

Аналогічним за наслідками буде встановлення відповідних властивостей в інспекторі об’єктів для поля, що додається.

Поля вибору даних часто використовуються для автоматичного занесення інформації в дану ТДБ з іншої ТДБ. Значення параметрів поля вибору в цьому випадку можна читати так: “Виходячи з реляційного зв’язку по полю (полях), вказаному у властивості KeyField(розглядаємо НД-власника) і по полю (полях), вказаному у властивостіLookupKeys(НД-джерела, зазначеного у властивостіDataSet) заповнювати поле (поля), вказане вKeyFieldsзначенням (значеннями), взятими з запису, що буде вибраний з меню”. В меню показується тільки те поле НД-джерела, що вказане у властивостіResultField. Властивість

property LookupCache: Boolean;

визначає, чи будуть значення полів вибору даних зберігатися в кеш-пам’яті (True) чи ні(False).

П

риклад.