
- •5.05010301 – Розробка програмного забезпечення)
- •Порядок виконання роботи Створення псевдоніму dbe
- •Створення таблиць бд
- •Визначення цілісності посилання між таблицями бд
- •Завдання
- •Порядок виконання роботи Використання майстра форм Database Form Wizard
- •Використання Database Explorer при розробці форм
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbGrid
- •Розробка форми з використанням компонентів tTable, tDataSource, tdbEdit, tLabel і редактора полів
- •Завдання:
- •Порядок роботи і рекомендації до її виконання
- •Розробка форми Master-Detail за допомогою Database Form Wizard
- •Розробка форми Master-Detail вручну
- •Завдання:
- •Порядок виконання роботи Створення полів, що обчисляються
- •Створення полів вибору даних (lookup - полів).
- •Завдання.
- •Порядок виконання роботи Стани наборів даних
- •Використання контейнера tDataModule
- •Компонент tdbLookupComboBox
- •Порядок виконання роботи
- •Оброблювачі подій для батьківської форми:
- •Оброблювачі подій для дочірньої форми:
- •Завдання:
- •Завдання
- •Порядок виконання роботи
- •Установка значень для пошуку
- •Завдання:
- •Порядок виконання роботи
- •Завдання:
- •Порядок виконання роботи
- •Завдання:
- •Порядок виконання роботи
- •Завдання:
- •Завдання:
- •Порядок виконання роботи
- •Компоненти для побудови звітів
- •Побудова простих звітів
- •Групування даних в звіті
- •Індивідуальні завдання
Порядок виконання роботи
Застосування повинно складатися з двох форм: перша - для перегляду інформації (містить компонент DBGrid для якого властивість ReadOnly має значення True), друга - для редагування (містить компоненти TDBEdit, TDBLookupComboBox та ін.). Додамо в застосування компонент TDataModule і розмістимо в ньому компоненти TDataBase, TTable і TDataSource.
У батьківській формі встановимо властивість DBGrid1.DataSource= DataModule1.DataSource1; а у дочірній формі задамо властивості DataSource для усіх компонентів, що працюють з окремими полями ТБД (компоненти TDBEdit, TDBLookupComboBox та ін.). У батьківській і дочірній формах розмістимо компоненти TLabel, що відображатимуть повідомлення про поточний стан НД.
Батьківська форма містить кнопки “Вставити”, “Змінити”, “Вилучити”. Дочірня форма містить кнопки “Запам'ятати”, “Скасувати”.
Оброблювачі подій для батьківської форми:
// натиснута кнопка "Вставити"
procedure TParentForm.InsertButtonClick(Sender: TObject);
begin DataModule1.Table1.Insert;
ChildForm.ShowModal;
end;
// натиснута кнопка "Змінити"
procedure TParentForm.EditButtonClick(Sender: TObject);
begin DataModule1.Table1.Edit;
ChildForm.ShowModal;
end;
// натиснута кнопка "Вилучити"
procedure TParentForm.DeleteButtonClick(Sender: TObject);
begin IF MessageDIg('Підтвердити вилучення запису',
mtlnformation, [mbYes, mbNo], 0) = mrYes THEN
DataModule1.Table1.Delete;
end;
Оброблювачі подій для дочірньої форми:
// натиснута кнопка “Запам'ятати”
procedure TChildForm.PostButtonClick (Sender: TObject;);
begin IF DataModule1.Table1.Modified THEN
DataModule1.Table1.Post;
// при успішному виконанні методу Post виходимо з модальної форми
ChiIdForm.ModalResult := mrOk;
end;
// натиснута кнопка “Скасувати” (ModalResult = mrCancel)
procedure TChildForm.CancelButtonClick(Sender: TObject);
begin
DataModule1.Table1.Cancel;
end;
Пример.
Практична робота № 6
Тема: Організація роботи з індексами
Мета: вивчення основ роботи з індексами
Завдання:
Розробити застосування, яке дозволяє отримувати інформацію про індекси. Вивести в:
ListBox1 імена всіх індексів ТБД, асоційованої з Table1;
Edit1.Text список полів індексу, чиє ім’я є поточним в ListBox1.
Примітка: необхідно збільшити у разі потреби кількість індексів таблиці щонайменше до трьох.
Обов’язкові засоби: TIndex Dets, GetIndex Names.
Зміст звіту.
Опис застосування з зазначенням встановлених значень властивостей компонентів.
Лістинги розроблених процедур та їх аналіз.
Висновки по роботі.
Порядок виконання роботи
Компонент TIndexDefs
Компонент TIndexDefs містить інформацію про всі індекси таблиці бази даних, що оголошені в ній в поточний момент. TTable має властивість
property IndexDefs:TIndexDefs;
яка містить посилання на об'єкт класу TIndexDefs. Тому для кожного компонента TTable завжди можна отримати інформацію про індекси даної ТБД через властивості і методи TIndexDefs.
Властивості:
property Count: Integer; - повертає число індексів;
property Item[Index:Integer]: TIndexDefs; - кількість об'єктів типу TIndexDefs, кожний з який містить інформацію про конкретний індекс. Index повинний належати діапазону [0..Count-1].
property Name:string; - повертає ім'я індексу;
property Fields:string; - повертає список полів, з яких побудований даний індекс;
property Options:TIndexOptions; - повертає характеристики індексу у вигляді множини TindexOptions = set of (ixPrimary, ixUnique, ixDescending, ixNonMaintained, ixCaseInsensitive), де IxPrimary - визначає первинний індекс; ixUnique - визначає унікальний індекс; ixDescending - визначає індекс, побудований за зменшенням значень ключових полів; ixCaseInsensitive - визначає індекс, нечутливый до регістру літер.
Методи:
procedure Add(const Name, Fields:string,Options:TIndexOptions) - створює новий об'єкт TIndexDef і поміщає його в колекцію TIndexDefs.Items;
procedure Update;- обновляє елемент колекції TIndexDefs.Items;
procedure Clear;- очищає елемент колекції TIndexDefs.Items;
function IndexOff(const Name:string):integer; - повертає з колекції TIndexDefs.Items індекс, у якого властивість Name збігається з параметром Name даного методу.
function FindIndexForFields(const Fields:string): TIndexDefs;- відшукує індекс полів, що записані в рядку Fields.
procedure GetIndexNames List:TStrings- повертає в параметрі List список імен індексів.
Приклад: Отримати інформацію про індекси у таблиці студенти.
Практична робота № 7
Тема: Організація пошуку у базі даних
Мета: вивчення властивостей, методів та подій для пошуку даних.