Робота з dbf-таблицями без використання bde і ado, блог delphi-програміста

Багатьом не подобається робота з ADO, BDE, так як для роботи програми, яка була написана з використанням даної технології, необхідна наявність встановлених драйверів постачальника даних, BDE, dll-бібліотеки і так далі.

У даній статті я розповім як можна швидко і дуже просто створювати DBF-таблиці, заповнювати їх даними та виконувати інші маніпуляції з даними. Все це буде здійснюватися за допомогою безкоштовного компонента TDBF. Я про нього теж мигцем розповідав вже, але всього лише пару слів. Але дуже часто ним користуюся, коли необхідно здійснити доступ до DBF-таблицями.

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

Отже, компонент Ви можете встановити, а я його просто підключаю в Uses, тобто, прописую туди модуль DBF. Але Ви можете його інсталювати, як годиться і використовувати як візуальний компонент.

Отже, я підключив модуль DBF в Uses і на формі розмістив чотири кнопки, які будуть відповідати за:

  • Створення DBF-таблиці
  • Вставки записів в DBF-таблицю
  • Видалення записів з DBF-таблиці
  • Зчитування записів з DBF-таблиці

Ось така у мене вийшла формочка:

Робота з dbf-таблицями без використання bde і ado, блог delphi-програміста

На формі у мене тільки кнопки, так необхідний компонент TDBF, але я буду використовувати даний компонент в режимі Run-Time. Почнемо ми з створення DBF-файлу. Таблиця у нас буде найпростіша, яка складається з номера і якогось текстового поля. Ось за допомогою такого не складного коду ми можемо без проблем створити DBF-таблицю:

Створюємо саму таблицю, додаємо 2 поля із зазначенням типу і розмірності, вказуємо її ім'я (шлях), кодову сторінку, закриваємо і знищуємо об'єкт. Заходимо по шляху, де повинна бути створена таблиця, перевіряємо:

Робота з dbf-таблицями без використання bde і ado, блог delphi-програміста

Кодування ANSI, все поля також присутні. Як бачите, таблиця створена без використання будь-яких додаткових драйверів, постачальників даних і так далі. Переходимо до вставки записів в цю таблицю.

Тому, код для вставки записів у мене вийшов такий:

Відкриваємо DBF-файл і бачимо:

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

Переходимо до видалення записів. Наскільки Вам відомо, в DBF-таблицях можна фізично видаляти записи, а можна поміщати їх просто на видалення. Так ось, ми розглянемо ці два варіанти. Запис позначається на видалення, якщо на ній встановлений покажчик. Ось таким ось кодом ми помітимо на видалення все записи:

Робота з dbf-таблицями без використання bde і ado, блог delphi-програміста

Щоб зняти позначку видалення на запис, необхідно просто DBF1.Deleted: = True замінити на DBF1.Deleted: = False. Щоб фізично видалити записи, потрібно упакувати таблицю, тому того, як офіційні свідоцтва були проставлені, необхідно дописати DBF1.PackTable.

Тепер нам залишилося розглянути тільки зчитування даних з DBF-таблиці. Для цього можна скористатися наступним кодом:

У GetFieldData необхідно передати номер стовпчика, дані якого Ви хочете вважати.

Створювати об'єкт DBF коштує всього лише один раз, в статті зазначено створення DBF на кожному подія, на випадок якщо Вам знадобитися тільки одну дію виробляти з DBF-таблицею. Не забудьте завантажити сам компонент і прочитати уважно там довідку. У ній досить все детально описано і набагато більше інформації.

Тепер Ви знаєте, як можна працювати з DBF-таблицями без використання BDE, ADO і інших драйверів і постачальників даних.

Схожі записи

Схожі статті