Робота з dbf-файлами в delphi, блог delphi-програміста

Робота з dbf-файлами в delphi, блог delphi-програміста
Всім доброго часу доби, дорогі читачі блогу. У сьогоднішній статті я розповім про доступ до DBF-файлів (таблиць) різними способами. Я зіткнувся з такою проблемою, коли мені необхідно було здійснити доступ до DBF-таблицями FoxPro. Пробував через BDE, не виходило, тільки до таблиць Paradox (dbf), в результаті вирішив спробувати через компонент TDBF -також обернулася невдачею. По-старому вирішив спробувати підключитися через ADO і все пішло як по маслу.

Тому, в даній статті я розповім, як можна підключитися до таблиць DBF трьома способами:

  • За допомогою BDE - для таблиць FoxPro у мене такий варіант не пройшов
  • За допомогою ADO - відмінно відкрилися таблиці FoxPro
  • За допомогою компонента TDBF - добре відкриває таблиці Paradox з різними кодуваннями або ж dBase.

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

LANGDRIVE not found

Я пробував його встановлювати і в саме BDE Administrator і при підключенні, але нічого не вийшло. Зате таким способам у мене відмінно підключався до таблиць DBF - Paradox, наприклад dBase.

Тому, встановлюємо на форму наступні компоненти зі вкладки BDE:

  • TDataBase
  • TTable або TQuery
  • За бажанням можна TDataSourceі TDbGrid

Далі в властивості DatabaseName компонента TDataBase задаємо ім'я БД, я написав - MyDB, а у властивості DriverName того ж компонента я вибрав зі списку STANDART. Властивість LoginPromt встановлюємо в False, так як логіна і пароля на наших таблицях ніякого не варто. У властивості Params задаємо параметри підключення, я вказав тільки шлях до наших таблиць:

Робота з dbf-файлами в delphi, блог delphi-програміста

Можна також подвійним клацанням натиснути по компоненту TDataBase і налаштувати необхідне підключення і встановлюємо властивість Connected в True, в результаті має відбутися підключення до таблиць, без всяких помилок. Тут все, переходимо до компоненту TTable, де в властивості DatabaseName вказуємо ім'я нашої БД, тобто MyDB. У властивості TableType вибираємо тип таблиць, я вказав - ttDBase, а у властивості TableName вибираємо ім'я таблиці, після чого встановлюємо властивість Active в True. Все, підключає у мене відмінно, таблицю відображає також відмінно.

Але такий варіант у мене не пройшов з таблицями FoxPro, про що я говорив вище. Тому, щоб вирішити свою проблему, я вирішив використовувати технологію ADO. Тому з вкладки ADO я встановив наступні компоненти:

  • TADOConnection
  • TADOQuery або TADOTable
  • За бажанням можна встановити TDataSource і TDBGrid

Далі нам необхідно просто створити підключення, яке ми робили для бази MS Access, воно буде відрізнятися тим, що ми вибираємо іншого постачальника даних, а саме Microsoft Visual FoxPro ODBC. Все, далі вказуємо кодування і шлях до таблиць. Якщо це таблиці FoxPro, то в папки повинен бути присутнім файл зі списком всіх таблиць, розширення * .dbc. Тобто, рядок підключення компонента TADOCOnnection буде виглядати, приблизно наступним чином:

Пов'язуємо компонент TADOConnection з TADOTable або TADOQuery і працює з потрібними нам таблицями.

Ще один варіант - це робота з таблицями dbf-формату, за допомогою компонента TDBF, який, я використовую в проекті MapWindow GIS. Якщо чесно, я хочу від нього відмовитися, просто він добре працює з кодуваннями. Розповідати, як з ним працювати, я не буду, а просто залишу посилання для прикладу. Приклад роботи компонента TDBF.

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

Схожі записи

Схожі статті