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

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

Далі, на подію OnCreate головної форми проекту, запишемо програмний код, з допомогою якого пов’яжемо всі візуальні компоненти TDBEdit з відповідними полями набору даних Table1.
begin
// Підключення компонента DBEdit1 до поля Kod набору даних Table1
DBEdit1.DataSource := DataSource1;
DBEdit1.DataField := ‘Kod’;
// Підключення компонента DBEdit2 до поля Model набору даних Table1
DBEdit2.DataSource := DataSource1;
DBEdit2.DataField := ‘Model’;
// Підключення компонента DBEdit3 до поля Color набору даних Table1
DBEdit3.DataSource := DataSource1;
DBEdit3.DataField := ‘Color’;
// Підключення компонента DBEdit4 до поля Outputyear набору даних Table1
DBEdit4.DataSource := DataSource1;
DBEdit4.DataField := ‘Outputyear’;
// Підключення компонента DBEdit5 до поля Price набору даних Table1
DBEdit5.DataSource := DataSource1;
DBEdit5.DataField := ‘Price’;
// Підключення компонента DBEdit6 до поля Motor набору даних Table1
DBEdit6.DataSource := DataSource1;
DBEdit6.DataField := ‘Motor’;
// Підключення компонента DBEdit7 до поля Mileage набору даних Table1
DBEdit7.DataSource := DataSource1;
DBEdit7.DataField := ‘Mileage’;
end;
Відкомпілювавши та запустивши проект на виконання, перевіримо правильність його роботи.

Також хочеться звернути увагу на ще кілька властивостей та подій, які можуть стати в нагоді при розробці delphi-програм, що працюють з базам даних з використанням компонентів TDBEdit. Отже, доступ до тексту, що виводиться в однорядковому редакторі, надає властивість Text типу TMaskedText. Текст у вікні визначається відповідним полем поточного запису і може змінюватися користувачем в режимі форма або програмно під час виконання. Відредаговане значення в полі поміщається в відповідне поле набору даних.
Зауваження: властивість Text компонентів TDBEdit, на відміну від однорядкових редакторів TEdit, під час проектування програми являється недоступною. Тому змінювати значення пов’язаного з ним поля використовуючи дану властивість, можна тільки програмно.
Як уже зазначалося вище, основне призначення текстового редактора TDBEdit – це введення і зміна значення певного поля набору даних. Проте, компонент такого типу можна використовувати і для відображення нередагованого тексту. З цією метою, для властивості ReadOnly типу Boolean потрібно встановити значення True.
Задати межу на максимальне число символів, що вводяться в компонент, можна за допомогою властивості MaxLength типу Integer. За замовчуванням у властивості встановлено нульове значення, тобто довжина рядка являється не обмеженою.
Якщо компонент TDBEdit планується застосування для введення конфіденційної інформації (наприклад, пароль доступу) і користувач delphi-програми не хоче знайомити з ними випадкового перехожого, що зазирнув у монітор, то для приховування тексту, що вводиться рекомендується використовувати властивість PasswordChar типу Char. Якщо значення властивості відрізняється від символу з кодом нуль («#0»), то при відображенні вмісту рядка реальні символи будуть підмінятися символом з PasswordChar.
З чималого переліку подій delphi-компонента TDBEdit, на практиці, вкрай корисною є подія, що виникає в момент натискання клавіші клавіатури OnKeyPress типу TKeyPressEvent, який описується наступним чином:
Завдяки параметру Key (в якому передається код вибраного користувачем символу) подія дозволяє здійснювати перевірку даних що вводяться і таким чином забезпечує коректність інформації, що передається в базу даних. Припустимо, що однорядковий редактор призначений для введення в поле чотиризначного числа, яке вказує на рік випуску автомобіля. Тоді, в якості прикладу, для даного поля можна запропонувати наступний варіант обробка події OnKeyPress:
begin
// Якщо при заповненні поля ‘Рік випуску’ код вибраного користувачем символу не збігається з кодом цифрової клавіші клавіатури, або довжина введеного користувачем значення дорівнює числу чотири
if (not (Key in [‘0’..’9′]) or (Length(DBEdit4.Text) >= 4)) then
// І якщо, при цьому, користувач натиснув клавішу відмінну від Backspace
if (Key <> #8) then
begin
// Забороняємо вивід будь-яких символів
Key := #0;
// Якщо довжина введеного користувачем значення являється меншою від числа чотири
if (Length(DBEdit4.Text) < 4) then
// Виводимо повідомлення про те, що для введення даних в компоненті DBEdit4 доступні тільки цифри
ShowMessage(‘Для введення даних в поле ”Рік випуску” доступні тільки цифри!’)
else
// Інакше, виводимо повідомлення про те, що довжина введеного в компоненті DBEdit4 значення, перевищує зазначений ліміт
ShowMessage(‘Значення поля ”Рік випуску” не повинно перевищувати чотиризначне число!’);
end;
end;
Запустивши проект на виконання та спробувавши ввести в компоненті DBEdit4 значення, яке, для даного поля, являється некоректним, отримаємо відповідне повідомлення.

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