Работа с DBF-файлами в Delphi

3 минуты на чтение

dbf-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 задаем параметры подключения, я указал только путь к нашим таблицам:

tdatabase

Можно также двойным щелчком нажать по компоненту 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 будет выглядеть, примерно следующим образом:

ADOConnection1.ConnectionString:='Provider=VFPOLEDB.1;Data Source=C:\1\222\BKOSHELEVO\pddata\G2013\m01;Password="";Collating Sequence=RUSSIAN';

Связываем компонент TADOConnection с TADOTable или TADOQuery и работает с нужными нам таблицами.

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

Заключение

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

Facebook Vk Ok LinkedIn Telegram

Похожие записи:

Приветствую читателей блога. Сегодняшняя статья будет посвящена работе с DBF-файлами, без использования ADO, BDE и компонентов доступа к данным. Я уже рассказывал про работу с DBF-файлами, это описано в этой статье. Многим не нравится работа с ADO, BDE, так ка...
Не долго пришлось ждать следующей статьи — про MapWindow GIS в Delphi, а тема ее — Работа с таблицами атрибутов, а точнее, работа, с тем самым, файлом dbf. Вообще, как Вы догадались возможно раньше, что приложен файл dbf - к shp-файлу не с проста. Вообще, если...
Здравствуйте, в этой статье хотел бы поговорить о работе с типизированными файлами, я уже публиковал статьи, где применял их, ну так, чтобы для более понять темы по созданию тестов, по сохранению и считыванию данных TStringGrid. Давайте сначала подумаю, а что ...