Виконання запитів за допомогою компонента TIBDataSet

Компонент TIBDataSet призначений для роботи з наборами даних, які отримані в ході виконання SQL-запиту. Для цього в компонент вбудовано ряд об’єктів, з допомогою яких можна виконувати запити на вибірку, видалення, модифкацію і додавання записів. Основним являється запит на вибірку, який міститься у властивості SelectSQL. Для створення запиту можна використовувати вбудований редактор, для запуску якого досить вибрати пункт контекстного меню Edit SQL.

Копонент TIBDataSet
Вікно редактора для формування SQL запитів на вибірку

Допоміжні запити містяться у властивостях InsertSQL, ModifySQL, DeleteSQL і RefreshSQL. Ці запити призначені, відповідно, для вставки, зміни, видалення і оновлення записів. Для виклику редактора допоміжних запитів до бази даних необхідно вибрати пункт контекстного меню компонента DataSet Editor.

Компонент TIBDataSet
Вікно редактора допоміжних SQL запитів до бази даних

Формування запитів являється дуже простим процесом. Достатньо лише вибрати ключові поля зі списку Key Fields, за якими буде проводитися пошук потрібних записів, і вибрати поля, які будемо оновлювати зі списку Update Fields. Після цього достатньо лише натиснути кнопку Generate SQL і запит буде автоматично побудовано. Текст даного запиту можна подивитися на вкладці SQL. Сервер InterBase, як і будь-який інший сервер БД, має аналог автоінкрементного поля. Цей тип називається генератором. Як правило, значення генератора збільшується спеціально написаним тригером. Для того щоб визначити, який генератор використовується для таблиці, в компоненті TIBDataSet існує властивість GeneratorField, яка надає досту до об’єкту TIBGeneratorField, з допомогою якого, можна вказати поле, значення якого буде автоматично збільшуватись.

Параметри об’єкта TIBGeneratorField найзручніше визначати  за допомогою спеціального редактора, доступ до якого можна отримати за допомогою кнопки, розташованої в лівій частині властивості GeneratorField розміщеної в інспекторі об’єктів.

Компонент TIBDataSet
Вікно редактора Generator Field

У полі Generator можна вибрати генератор зі списку, в полі Field – вказати поле, для якого буде генеруватися значення, а в полі Increment By можна вказати значення, на яке буде проводитися збільшення поточного значення генератора при створенні нового запису. На панелі Apply Event можна вказати момент, коли нове значення буде генеруватися і надсилатися на сервер.

Тепер, коли основні методи роботи з компонентом TIBDataSet відомі, використання цього компоненту розглянемо на прикладі. Для цього створимо новий проект і помістимо на форму такі компоненти: IBDataSet1, IBDatabase1, IBTransaction1 (містяться на закладці Interbase), DataSourse1 з закладки Data Access і по одному компоненту DBGrid1 та DBNavigator1, які містяться на закладці Data Controls.

Для початку необхідно налаштувати компонент TDatabase. Після подвійного клацання мишею на компоненті буде відображено вікно Database Component Editor. В вікні для поля Database вказуємо шлях до файлу бази даних autobazar.gdb. В полях User Name і Password вказуємо значення SYSDBA і masterkey відповідно. Після натискання кнопки Ok у властивості LoginPrompt (міститься в інспекторі об’єктів) буде потрібно вибрати значення False. У цьому випадку ім’я користувача та пароль будуть завантажені з властивості Params.

Після цього необхідно встановити з’єднання з базою даних, задавши для властивості Connected значення True. Компонент бази даних TIBDatabase за допомогою властивості Defaul transaction слід пов’язати з компонентом транзакції TIBTransaction. Рівень ізоляції транзакції встановлюється за допомогою значення Read Commited в редакторі Transaction Editor компонента TIBTransaction. Активується компонент за допомогою встановлення значення  властивості Active в True.

Компонент TIBDataSet зв’яжемо з компонентами бази даних і транзакції за допомогою властивостей Database і Transaction. У властивості selectSQL вкажемо запит SELECT * FROM Cars, який отримує всі записи з таблиці Cars.

Також слід визначити допоміжні запити. Для цього запустимо редактор DataSet Editor, виберемо в списку Key Fields ключові поля, у списку Update Fields – поля для змін і згенеруємо запити натиснувши кнопку Generate SQL. Активація компонента, здійснюється з допомогою властивості Active значення якої потрібно встановити в True.

Компонент TDataSource за допомогою властивості DataSet пов’яжемо з компонентом TIBDataSet. Значення властивості DataSourse компонентів TDBGrid та TDBNavigator встановимо рівним DataSource1.

Після виконання даних дій головна форма проекту набуде наступного вигляду:

Вікно головної форми delphi-проекту
Вікно головної форми delphi-проекту

Відмітимо, що в розглядуваному вище проекті, який реалізує приклад, передбачено можливість редагувати дані за допомогою компонента DBGrid, оскільки ми вказали допоміжні запити у властивостях InsertSQL, ModifySQL, DeieteSQL і RefreshSQL. Скачати даний проект можна за посиланням приклад використання компонента TIBDataSet.

Залишити коментар

Your email address will not be published. Required fields are marked *

*