
- •Організація баз даних і знань
- •7.080401 "Інформаційні управляючі системи і технології " і
- •7.080402 "Інформаційні технології проектування"
- •Загальні зауваження до проведенння лабораторних робіт
- •Основні засоби для роботи з базами даних вdelphi
- •Архітектура баз даних вdelphi
- •Компоненти для роботи з базами даних
- •Завдання для лабораторних робіт Лабораторна робота №1 Створення та реструктуризація бази даних.
- •Завдання:
- •Зміст звіту:
- •Порядок виконання роботи Створення псевдоніму dbe
- •Створення таблиць бд
- •Визначення цілісності посилання між таблицями бд
- •Лабораторна робота №2
- •Використання Database Explorer при розробці форм
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbGrid
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbEdit, tLabel і редактора полів
- •Лабораторна робота №3
- •Лабораторна робота № 4 Обробка полів таблиць бази даних
- •Завдання:
- •Зміст звіту.
- •Порядок виконання роботи Створення полів, що обчисляються
- •Створення полів вибору даних (lookup - полів).
- •Лабораторна робота № 5
- •Використання контейнера tDataModule
- •Компонент tdbLookupComboBox
- •Порядок виконання роботи
- •Лабораторна робота № 6
- •Лабораторна робота № 7
- •Установка значень для пошуку
- •Лабораторна робота №8
- •Використання методів FindFirst, FindLast, FindNext, FindPrior.
- •Загальні зауваження до роботи з компонентомtQuery
- •Лаборатора робота № 9
- •Лабораторна робота № 10
- •Лабораторна робота № 11
- •Лабораторна робота №12
- •Побудова простих звітів
- •Групування даних в звіті
- •Перелік рекомендованої лiтератури
- •Навчально-методичне видання організація баз даних та знань
- •7.080401 "Інформаційні управляючі системи і технології " і
- •7.080402 "Інформаційні технології проектування"
Лабораторна робота № 4 Обробка полів таблиць бази даних
Мета:виконання основних операцій з обробки полів однієї таблиці, або декількох зв’язаних таблиць.
Завдання:
Для будь-якого набору даних створити поле, що обчислюється.
Для набору даних, зв’язаного з підпорядкованою таблицею бази даних (ТБД), створити нове поле вибору даних для автоматичного занесення інформації в підпорядковану ТБД з головної таблиці (зв’язок типу “один-до-багатьох”).
Розробити форму для роботи з двома наборами даних, один з яких має lookup-поле та поле, що обчислюється.
Використати редактор стовпців (Columns Editor) для зміни параметрів компонентівTDBGrid.
Обов’язкові засоби:TFild, TFildEditor.
Зміст звіту.
Опис розробленої форми.
Висновки по роботі.
Порядок виконання роботи Створення полів, що обчисляються
Для створення поля, що обчисляється за значеннями інших полів, необхідно:
У редакторі полів створити нове поле, помітивши його як Calculated. Для цього потрібно за допомогою миші зробити поточним необхідний НД, натиснути праву кнопку миші, вибрати в менюField Editor, знову натиснути праву кнопку миші і вибрати в менюNew Field. Потім у вікні діалогу необхідно зазначити ім'я поля, його тип (Type) і для текстових полів - довжину (Size). Для нового поля буде створений компонентTField, доступ до якого можна здійснювати в редакторі полів.
Для компонента НД, до якого належить поле, що обчисляється, необхідно визначити оброблювач події 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).
П