- •Організація баз даних і знань
- •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 "Інформаційні технології проектування"
Лабораторна робота № 5
Використання контейнераTDataModule
Мета:Набуття практичних навиків створення модулів даних уDelphi. Аналіз стану НД.
Завдання.
Для заданого предметного середовища розробити застосування, який включає модуль даних, форму перегляду даних і форму редагування даних.
Проаналізувати стан НД при роботі з ним.
Обов'язкові засоби: TDataModule, TDataBase, TDBGrid, TDBEdit, TDBLookupComboBox, TButton, TLabel.
Зміст звіту.
Опис створеного модуля даних.
Опис форм додатку з зазначенням встановлених значень властивостей компонентів.
Лістинги розроблених процедур та їх аналіз.
Висновки по роботі.
Порядок виконання роботи
Стани наборів даних
Набором данихуDelphiназивають групу записів з однієї або декількох ТБД, доступних для використання через компонентиTTableабоTQuery. З можливих станів НД розглянемо такі:
dsInactive– НД закритий;
dsBrowse– стан за замовчуванням для відкритого НД. Показує, що записи переглядаються, але в даний момент не змінюються;
dsEdit– НД знаходиться у стані редагування поточного запису (після явно або неявно викликаного методуEdit);
dsInsert– НД знаходиться у стані додавання нового запису (після явно або неявно викликаного методуInsertабоAppend).
Одержати поточний стан НД можна, використовуючи метод State. Він повертає такі константи:dslnactive, dsBrowse, dsEdit, dslnsert, dsSetKey, dsCalcFields, dsFilter.Наприклад:
IF Table1. State = dslnactive THEN Table1. Active := True;
Подія OnStateChange(компонентDataSource) настає щоразу при зміні стану НД. Для відображення на екрані (у компонентіLabel1) повідомлення про поточний стан НД використовуємо процедуру:
procedure TForm1.DataSource1StateChange(Sender: TObject);
var S : String;
begin
CASE Table1. State OF
Dslnactive :S := 'He активна';
DsBrowse :S := 'Перегляд';
dsEdit :S := 'Редагування';
dslnsert :S := 'Вставка';
END; {case}
Label1.Caption := S;
end;
Використання контейнера tDataModule
Компонент типу TDataModuleявляє собою контейнер, у якому поміщуються компонентиTTable, TQuery, DataSourceі т.д. Створити екземплярTDataModuleможна, обравши в середовищіDelphi пункт менюFile / NewDataModule. На відміну відTForm, уTDataModuleможна розмістити тільки невізуальні компоненти для роботи з базами даних. Зв'язок компонентівTDataSource, TTableіTQuery, розміщених уDataModule, виконується так само, як і у випадку, коли б вони були розташовані в одній формі.
DataModuleпотрібно зберегти під яким-небудь іменем і додати ім'я модуляunit, у якому описанийTDataModule, у текст модулівunitвсіх інших форм застосування, що будуть використовувати НД іTDataSource, розміщені в цьомуTDataModule. Це виконується в головному меню середовища Delphi, в елементі менюFile/Use Unit.
Надалі візуальні компоненти, що працюють із даним НД, повинні у своїй властивості DataSourceмістити ім'я відповідного компонентаTDataSourceіз TDataModule. У цьому випадку ім'я буде складним, наприклад,DataModule1.DataSource1.
Компонент tdbLookupComboBox
Компонент TDBLookupComboBoxзастосовується для вибору значень у поле одного набору даних (НД-1) зі списку значень, джерелом яких виступають значення поля з іншого набору даних (НД-2). Набори даних НД-1 і НД-2 зв'язуються по полю зв'язку. Це поле повинно мати ідентичний тип і в НД-1, і в НД-2. Між НД-1 і НД-2 встановлюється зв'язок, як правило, багато (НД-1)-до-одного (НД-2).
Ключові властивості компонента TDBLookupComboBox:
DataSource -вказує на компонентTDataSourceдля НД-1.
DataField -встановлює поле НД-1, у який буде поміщатися значення з НД-2.
ListSource- вказує на компонентTDataSourceНД-2.
ListField -встановлює поле, значення якого буде показуватися в списку вибору. Можна зазначити декілька полів. Тоді всі вони будуть відображатися в списку вибору. Імена полів розділяються крапкою з комою.
RowCount -вказує, скільки рядків відображається у списку, що випадає. При зміні розмірів списку, наприклад, шляхом занесення нового значення у властивістьHeight,RowCountзміняться автоматично.
KeyField -установлює поле зв'язку між наборами даних НД-1 і НД-2.
KeyValue -містить поточне значення поля зв'язку. Якщо під час виконання програми його значення зміниться, то буде зроблена спроба відшукати в НД-2 запис зі значенням, зазначеним в цій властивості.