• 0
brunnengi

[XE7] Приведите пример работы с DBF базой в XE7 через FireDAC

Вопросы

Здравствуйте.

Приведите пожалуйста пример работы с DBF базой в XE7 через FireDAC.

А то тыкаюсь и не получается. Если можно в run-time режиме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 ответов на этот вопрос

  • 0

Я не знаю, актуально ли ещё (навряд ли), но для будущих поколений напишу.

 

Итак, пример работы с локальными справочниками *.dbf с использованием FireDAC:

- Кидаем на форму компоненты классов TFDConnection, TFDTable, TFDGUIxWaitCursor.

- Прописываем у компонента класса TFDConnection в свойство Params.Database путь к папку с вашим *.dbf файлом (к примеру, если путь к *.dbf файлу "C:\Test_Application\Database\Table.dbf", то пишем "C:\Test_Application\Database")

- В свойстве Params.DataSource выбираем dBase files

- Драйвер выбираем, к примеру, ODBC.

- Объект класса TFDTable соединяем с TFDConnection и заполняем свойство TableName (например, если ваш справочник называется "Table.dbf", то пишем "Table")

 

Готово! Вы восхитительны!

Осталось привязать TFDTable к какому-нибудь источнику данных (DataSource) и использовать на своё усмотрение.

 

P.S: автор, извини, что опоздал на месяц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Что то я ума все равно не смог дать. Пишет:

[FireDAC][Phys][ODBC][Microsoft][Диспетчер драйверов ODBC] Источник даных не найдне и не указан драйвер, используемый по умолчанию 

При том что на XE6 с dbf файлы открывались.

Если не тяжело, выложите исходники. Может я что то упускаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Так, понятно. Ладно, тогда другой вариант, с ADS. Подробно о нём написано здесь.

 

Для начала надо будет его скачать. Например, отсюда. Качать нужно ту версию, какой разрядности у Вас компилируемое приложение (32,скорее всего).

Не подумайте, это не 3rd party, просто у меня в XE7 его в поставке почему-то не было.

 

Устанавливаем, прописываем путь в среде к ace32.dll и adsloc32.dll. Или кидаем их в папку с exe'шником.

Если хотите работать с TFDConnection'ом в Design-time, скопируйте эти файлы в папку "..\bin\" Delphi.

 

Далее, начало такое же:

  1. Кидаем на форму компоненты классов TFDConnection, TFDTable, TFDGUIxWaitCursor.
  2. Прописываем у компонента класса TFDConnection в свойство Params.Database путь к папке с вашим "*.dbf" файлом (к примеру, если путь к "*.dbf" файлу "C:\Test_Application\Database\Table.dbf", то пишем "C:\Test_Application\Database")
  3. Драйвер выбираем ADS.
  4. Далее, в свойствах TFDConnection'а ServerTypes ставим "Local", TableType ставим "VFP".
  5. После этого должно работать.

Подключаться лучше в Run-time, ставя свойство соединения Connected := True и свойство таблицы Active := True.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Если речь идет о таблицах Visual Dbase7 - указанные выше методы не помогут, рекомендую бесплатный компонент TDBF.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

я в делфи 7  использовал https://sourceforge.net/projects/vkdbf/ это, работало замечательно, с клипером взаимные блокировки отрабатывали и не мешали друг другу. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу