- •Організація баз даних і знань
- •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 "Інформаційні технології проектування"
Загальні зауваження до роботи з компонентомtQuery
Компонент TQueryпризначений для:
виконання запитів до БД, які повертають НД, джерелом даних для якого можуть слугувати записи як однієї, так і декількох таблиць БД;
виконання запитів до БД, які не повертають наборів даних (додавання, зміна, видалення записів в ТБД тощо).
Текст будь-якого запиту зберігається у властивості SQL компонентаTQuery.
Таким чином, один компонент TQueryвикористовується для виконання таких різних запитів, як, наприклад,SELECTтаINSERT.
Для з’єднання компонента TQueryз базою даних необхідно у властивостіDatabaseNameвказати:
псевдонім БД, раніше визначений за допомогою утиліти BDE Adminastrator;
перевизначений псевдонім із властивості DatabaseNameявно визначеного компонентаTDataBase, якщо він використовується.
Запити, що виконуються компонентом TQuery, можуть бути статичними або динамічними.
Статичний запитхарактеризується тим, щоSQL-оператор, який його описує, не змінюється в процесі роботи застосування.
SQL-оператор динамічного запитуможе частково змінюватися під час роботи застосування. В цьому випадку ті частиниSQL-оператора, що змінюються, оформлюють у вигляді параметрів, значення яких можуть багаторазово змінюватись в процесі роботи застосування.
Для формування статичного запиту необхідно:
Вибрати для існуючого компонента TQueryвластивістьSQLв інспекторі об’єктів і натиснути кнопку в правій частині рядка.
У вікні текстового редактора набрати текст SQL-запиту та натиснутиОК.
Встановити властивість Activeкомпонента вTrue, якщо результуючий НД необхідно відкрити в момент початку роботи застосування, або залишити властивістьActive у станіFalse, якщо відкриття НД буде виконуватися в програмі в деякий момент роботи застосування.
Умову вибору записів, що реалізована в статичному запиті, змінити не можна.
У випадку динамічного запиту під параметром розуміють ім’я, перед яким ставиться двокрапка, наприклад:
:Parameter1
Імена параметрів можуть бути довільними.
Для формування динамічного запиту необхідно:
Вибрати для існуючого компонента TQueryв інспекторі об’єктів властивістьSQLі натиснути кнопку текстового редактора.
У вікні текстового редактора набрати текст SQL-оператора з параметрами.
Вибрати в інспекторі об’єктів властивість Paramsі натиснути кнопку у рядку даної властивості. У вікні, що з’явиться, будуть показані імена всіх параметрів, введених у текст динамічногоSQL-оператора на кроці 2. Список параметрів відслідковується автоматично щоразу при змінні складу властивостіSQL.
Кожному параметру необхідно поставити у відповідність деякий тип, а якщо потрібно, то й стартове значення в полі Value. ПеремикачNull Valueдозволяє вказувати в якості стартового значенняNULL.
Компонент TQueryможна зробити активним (встановити властивістьActive=True) на стадії розробки застосування лише у тому випадку, коли для кожного з параметрів визначено стартове значення.
Якщо компонент TQuery не відкрито в момент створення форми, його можна відкрити в будь-який момент програмно.
У випадку використання оператора SELECT,після відкриття компонентаTQueryповертається набір даних. Такий компонентTQuery необхідно відкривати:
встановленням властивості Activeв значенняTrue, наприклад:
Query1.Active:=True;
виконанням метода procedure Open, наприклад:
Query1.Open;
У випадку використання операторів INSERT,UPDATE,DELETE,набір даних не повертається. Такий компонентTQueryнеобхідно відкривати, виконуючи методprocedure ExecSQL, наприклад:
Query1.ExecSQL;
Закриття компонента TQueryздійснюється методом procedureCloseабо встановленням вFalseвластивостіActive, наприклад
Query1.Active:=False;
Виконання методу Closeдля компонентаTQuery, який не повертає набір даних, не має ніяких наслідків, оскільки з компонентом не пов’язаний відкритий набір даних.
Для передачі значень параметрів може використовуватись властивість DataSourceкомпонентаTQuery. У цьому випадку явного надання значень параметрам динамічного запиту не виконується, тобто не кодуються оператори присвоєння типу
Query1.ParamByName(‘Ім’я Параметра’).Value:=Значення;
Застосування визначає, чи є посилання на будь-який компонент TDataSourceу властивостіDataSourceкомпонентаTQuery. Якщо такого посилання немає – відбувається збудження виключної ситуації; якщо є – в наборі даних, що пов’язаний зTDataSourse, відшукуються поля, які мають такі ж імена, як і параметри динамічного запиту. Якщо такі поля є, то їх поточні значення беруться в якості значень параметрів, якщо таких полів немає - відбувається збудження виключної ситуації.