Категорія: Робота з базами даних в середовищі програмування Delphi

Редагування та навігація по записах набору даних використовуючи компонент TDBNavigator

Переміщення, або навігація по записах набору даних, може здійснюватися кількома шляхами. Наприклад, в компонентах TDBGrid та TDBCtrlGrid, які відображають відразу кілька записів, можна використовувати клавіші вертикального переміщення курсору або вертикальну смугу прокрутки. Але що робити, якщо на формі знаходяться компоненти, що відображають одне поле тільки поточного запису набору даних (TDBEdit, TDBMemo, TDBComboBox та інші)? Очевидно, що в такому випадку на формі повинні бути розміщені додаткові елементи управління, що відповідають за переміщення по записах.

Навігація та редагування набору даниз використовуючи компонент TDBNavigator

Для вирішення зазначених завдань і призначений delphi-компонент TDBNavigator, який являє собою сукупність керуючих кнопок, які реалізують операції навігації по набору даних, а також, модифікації та видалення записів цілком.

Читати далі

Відображення та редагування даних булевого типу використовуючи компонент TDBCheckBox

Компонент TDBCheckBox – пов’язаний з даними аналог звичайного індикатора TCheckBox. Він дозволяє відображати і редагувати дані поля булевого, а також символьного та числового типу. Якщо при виведенні даних булеве поле приймає значення True, то пов’язаний з ним індикатор являється включеним. Якщо ж в процесі редагування користувач включить або вимкне індикатор, то відповідно значення True або False запишеться у відповідному полі таблиці бази даних. Це один із способів забезпечити користувачеві безпомилкове введення значень в поле таблиці бази даних.

Зв’язок компонента типу TDBCheckBox з полем набору даних здійснюється за допомогою його властивостей DataSource типу TDataSource і DataField типу TDataField. Перше з властивостей вказує на ім’я компонента джерела даних, через який здійснюється зв’язок з набором даних. І властивість DataField для пов’язаного набору даних вказує ім’я поля.

Якщо ж delphi-компонент TDBCheckBox пов’язаний з полем символьного або числового типу, то у властивості ValueChecked типу String даного компонента заноситься рядок, який перераховує значення поля, при яких індикатор включається, а у властивості ValueUnchecked (також типу String) перераховуються значення, при яких індикатор вимикається (окремі значення розділяються крапкою з комою). При значеннях, що не перераховані ні у ValueChecked, ні у ValueUnchecked, індикатор TDBCheckBox переходить у невизначений стан, відображаючи сірий прапорець (навіть у тому випадку коли властивість AllowGrayed (відповідає за заборону переводу індикатора в невизначений стан) приймає значення False).

Читати далі

Відображення та редагування багаторядкових текстових даних використовуючи компонент TDBMemo

Delphi-компонент TDBMemo являє собою багаторядковий текстовий редактор, який, зазвичай, зв’язується з текстовими полями великих розмірів або з BLOB-полями, що спеціалізуються на збереженні текстових даних. Такі поля іноді називають MEMO-полями і вони реалізовані в таблицях формату dBase і Paradox. Нагадаємо, що при проектуванні таблиці за допомогою утиліти Database Desktop поле такого типу позначається символом «M».

Зауваження: у компоненті можна використовувати буфер обміну за допомогою стандартних засобів операційної системи або успадкованими від предка TCustomMemo методами CopyToClipBoard, CutToClipBoard і PasteFromClipBoard.

Як уже зазначалося, при розгляді основних характеристик візуальних компонентів призначених для роботи з базами даних, серед властивостей компонентів такого типу, і зокрема компонента TDBMemo, виділяють дві, що забезпечують зв’язок з даними. Це властивість DataSource типу TDataSource (вказує на джерело даних, з яким пов’язаний компонент TDBMemo) і властивість DataField типу TDataField (вказує на поле набору даних, з яким пов’язаний компонент TDBMemo). Скориставшись даними властивостями пов’яжемо компонент TDBMemo з полем description таблиці cars («Автомобілі») бази даних autobazar («Автобазар»). Для цього, відкриємо delphi-проект, який ми створювали при розгляді однорядкового текстового редактора TDBEdit та доповнимо головну форму одним компонентом DBMemo1 типу TDBMemo та ще одним компонентом типу TLabel (містяться на закладках Data Controls та Standard палітри компонентів Delphi відповідно).

Читати далі

Виведення записів набору даних в табличному вигляді використовуючи компонент TDBGrid

Для виведення записів набору даних в табличному вигляді зручно використовувати сітку, представлену delphi-компонентом типу TDBGrid. Зовнішній вигляд сітки відповідає внутрішній структурі таблиці бази даних і набору даних. При цьому, рядкам сітки відповідають записи, а стовпцям – поля.

Об’єкт TDBGrid зв’язується з джерелом даних через свою властивість DataSource, яке, в свою чергу, посилається на набір даних. Тобто, якщо на форму, де вже відповідним чином налаштовані невізуальні компоненти, наприклад, Table1 та DataSource1 помістити таблицю DBGrid1, і у властивості DataSource даної таблиці вказати значення DataSource1, то ми відразу ж побачимо вміст таблиці бази даних, що пов’язується з набором даних Table1. В нашому випадку це таблиця cars («Автомобілі») бази даних dbautobazar («Автобазар»).

tdbgrid_komponent1

Вивід вмісту таблиці cars в компоненті DBGrid1

Зауваження: у процесі виконання програми значення властивості DataSource можна змінювати, і таким чином, використовуючи одну таблицю TDBGrid, здійснювати відображення даних від декількох джерел.

Читати далі

Перегляд та редагування полів таблиць бази даних використовуючи компонент TDBEdit

Для відображення та редагування значень рядкового поля в додатках що працюють з базами даних, зазвичай, використовується delphi-компонент типу TDBEdit. Однорядковий редактор такого типу працює так само, як однорядковий редактор TEdit, відображаючи рядкове значення і дозволяючи користувачеві змінювати його. Відмінність компонентів полягає лише в тому, що в редакторі TDBEdit відображаються і змінюються значення певного поля поточного запису відповідного набору даних.

Для того, щоб компонент TDBEdit відображав і дозволяв редагувати значення деякого поля набору даних, потрібно встановити для його властивості DataSource, в якості значення, ім’я джерела даних, а для властивості DataField – ім’я поля пов’язаного з цим джерелом набору даних. Зробити це можна за допомогою інспектора об’єктів або програмно. Відмітимо, що яким чином це реалізується в інспекторі об’єктів нами вже було показано при розгляді візуального компонента TDBTetx. Для текстового редактора TDBEdit процес підключення аналогічний: всі компоненти зв’язуються з відповідним полем набору даних через свої властивості DataSource та DataField.

tdbedit_komponent6

Підключення компонента DBEdit1 до поля Kod набору даних Table1 використовуючи інспектор об'єктів

Сьогодні встановимо необхідні значення для цих властивостей програмно. Для цього модифікуємо delphi-проект, що міститься за вказаним вище посиланням таким чином, щок користувач мав змогу не тільки переглядати рядки таблиці cars бази даних autobazar, а і вносити в її полях певні зміни. Отже, відкриємо delphi-проект та видалимо з головної форми всі компоненти типу TDBTetx. Замість них будемо використовувати однорядкові редактори TDBEdit. Для цієї мети на формі розмістимо стільки компонентів, скільки полів ми хочемо переглядати. В нашому випадку необхідно сім компонентів.

Читати далі

Візуальні компоненти призначені для роботи з базами даними

Як ми вже знаємо, будь-яка прикладна delphi-програма, призначена для роботи з базами даних, будується на основі використання трьох типів компонентів, це набір даних, джерело даних та візуальні компоненти для роботи з даними. Відмітимо, що в дану групу входять як візуальні, так і не візуальні компоненти. Не візуальні компоненти призначені для забезпечення доступу до даних та вибірки з бази даних інформації, що потім може оброблятися прикладною програмою. Візуальні компоненти, в свою чергу, призначені для відображення та редагування даних. Саме вони, по суті, забезпечують інтерфейс прикладної програми з користувачем. В середовищі програмування Delphi, вони розташовуються на закладці Data Controls палітри компонентів:

Читати далі

Основні властивості та методи компонентів набору даних

Розглядаючи складові delphi-програм, що створюються для роботи з базами даних, нами неодноразово було використано термін набір даних. Але що ж мається на увазі під цим терміном залишається не зовсім зрозумілим. Отже, у найпростішому випадку набір даних – це файл таблиці, фізично розташований на жорсткому диску комп’ютера, де таблиця складається з певного переліку полів, кожне з яких призначене для зберігання даних певного типу.

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

Якщо ж всі рядки таблиці відсортовані в алфавітному або в якомусь іншому порядку, то застосовують термін упорядкований набір даних. Також хочеться зазначити, що дуже часто зустрічається випадок, коли результуючий набір формується з даних, що зберігаються в різних таблицях. У такому випадку можна говорити про скаладений наборі даних.

Читати далі

Джерело даних – компонент TDataSource

Розглянувши основні характеристики проектів роботи з базами даних, приходимо до висновку, що джерело даних являється незмінним елементом при розробці будь-яких клієнтських програм, що пряцюють з даними такого типу. Компонент TDataSource (міститься на закладці Data Access палітри компонентів Delphi) і виконує функції джерела даних в таких програмах. Власних властивостей і методів у нього небагато, а якщо бути більш точним, то чотири властивості, два методи і три обробника подій. Але, незважаючи на таку скромність, він прекрасно вирішує поставлені перед ним завдання.

По-перше, організація взаємодій між компонентами доступу до набору даних (компоненти типу TTable, TQuery, TStoredProc,…) і елементами управління даними (TDBNavigator, TDBEdit, TDBGrid,…) здійснюється саме з допомогою компонентаTDataSource. Джерело даних, в такому випадку, бере на себе відповідальність за передачу інформації в компоненти відображення даних і повертає назад здійснені користувачем зміни. Завдяки такій винятковій здатності питання відображення і редагування пов’язаних з TDataSource даних не викликає ніяких труднощів.

По-друге, компонент TDataSource здатний організувати зв’язок між головним та підлеглим наборами даних. Це питання більш детально буде розглянуто в подальших параграфах, де з допомогою компонента TDataSource ми навчимося встановлювати відношення («один до одного»«один до багатьох»«багато до одного» і «багато до багатьох») між двома таблицями бази даних.

Читати далі

Характеристика delphi-проектів які створюються для роботи з базами даних

При створенні програми для роботи з базами даних із застосуванням будь-якої технології доступу до даних (BDE (Borland Database Engine), dbExpress, ADO (ActiveX Database Objects), InterBase) використовується стандартний склад і схема зв’язку компонентів і таблиці бази даних. До складу delphi-програми для роботи з базами даних входять три типи компонентів: джерело даних, візуальні компоненти і набори даних.

Компонент джерело даних відіграє роль сполучної ланки між набором даних і візуальними компонентами. Візуальні компоненти служать для навігації по набору даних, відображення і редагування записів. Набори даних служать для організації зв’язку з таблицями бази даних. У Delphi для різних механізмів доступу до даних, в якості наборів даних використовуються свої компоненти.

Взаємозв’язок компонентів програми з базою даних та однією з її таблиць показано на наступній схемі.

Читати далі

Клієнтська програма на основі IBQuery та IBUpdateSQL

Компонент TIBUpdateSQL реалізує об’єкти, призначені для редагування наборів даних, доступних тільки для читання. Компонент зазвичай використовується спільно з компонентом TIBQuery. Вся робота механізму є простою у використанні і практично не вимагає від програміста написання коду.

Зв’язок компонента TIBUpdateSQL з компонентом TIBQuery, здійснюється за допомогою властивості UpdateObject. Запити на додавання, редагування та видалення записів зручно створювати в спеціальному редакторі, доступ до якого можна отримати за допомогою команди контекстного меню UpdateSQL Editor.

Для розробки простого прикладу використання компонента необхідно створити новий проект і на формі розмістити компоненти IBQuery1, IBDatabase1, IBTransaction1, IBUpdateSQL1, DataSource1, DBGrid1, DBNavigator1.

ibupdatesql2

Прикладу використання компонента IBUpdateSQL

Читати далі