- •Організація баз даних і знань
- •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 "Інформаційні технології проектування"
Порядок виконання роботи
застосування повинно складатися з двох форм: перша - для перегляду інформації (містить компонент 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список імен індексів.
Приклад:Отримати інформацію про індекси у таблиці студенти.