генерировать файлы DBF

Как сгенерировать файлы DBF с помощью delphi?

Дополнительная информация:

Мне нужна портативная база данных для работы на флешке

Я не знаю, лучшее ли решение - DBF.

Мне нравится MySql, но мне трудно найти портативную версию

В настоящее время я работаю с XML, но не знаю, как сделать запрос.


person Leo    schedule 05.12.2009    source источник


Ответы (5)


TDBF кажется одним из наиболее часто используемых (и все еще поддерживаемых) пакетов:

http://tdbf.sourceforge.net/

person Marco van de Voort    schedule 05.12.2009
comment
Действительно, все еще используется (сам использую в FreePascal), но, судя по всему, сопровождающий отказался от него. см. например bugs.freepascal.org/view.php?id=19961 - person reiniero; 01.11.2011

Если вы открыты для альтернативных форматов, я настоятельно рекомендую вам попробовать встроенную Firebird. Я почти уверен, что загрузил свою базу данных и свое приложение на флэш-накопитель в качестве эксперимента около двух лет назад, и все прошло нормально. Я долгое время придерживался файлов DBF, но как только я переключился, я больше никогда не вернусь. Если вы хотите попробовать, рассмотрите возможность использования DBExpress и драйвера Interbase. Хотя официально он не поддерживается, несовместимости я не обнаружил. В качестве инструмента визуального управления приобретите персональную версию IBExpert.

person jrodenhi    schedule 05.12.2009
comment
Еще одним хорошим вариантом было бы использование SQLite. БД компилируется прямо в исполняемый файл. Все, что вам нужно для развертывания, это exe и файл db, установка не требуется - person Joe Meyer; 05.12.2009

Этим не занимались годами!
В зависимости от вашей версии Delphi и того, что вы хотите сделать, вы можете либо использовать BDE, либо найти некоторые специализированные компоненты, которые читают / записывают непосредственно в собственный формат файла DBF.

person Francesca    schedule 05.12.2009

Вау, я удивлен, что этот URL-адрес все еще действителен!

Если вы хотите создать DBF с помощью API BDE, вы можете использовать следующие методы: http://info.borland.com/devsupport/bde/bdeapiex/dbicreatetable.html

Однако, в зависимости от размера набора данных, который вы собираетесь иметь, это звучит как однопользовательское приложение, которое отлично работает с файлом «MyBase» - другим именем для файлов, используемых TClientDataSet. Вы можете сохранить его как в формате XML, так и в двоичном (CDS) формате, просто установив свойство TClientDataSet.FileName, которое будет использоваться для чтения и записи набора данных. С его помощью вы даже можете создавать вложенные наборы данных.

Если вы хотите иметь наиболее эффективный однопользовательский режим, также отключите журнал изменений в TClientDataSet.

procedure TFormCDSDataBug.ButtonOpenClick(Sender: TObject);
begin
  ClientDataSet1.FileName := ExtractFilePath(Application.ExeName) + 'MyData.cds';
  ClientDataSet1.LogChanges := False;
  ClientDataSet1.Open;
end;
person John Kaster    schedule 05.12.2009

Я не использовал его, но есть компонент jdDbf, который, похоже, быть недавно обновленным, кажется, что он будет работать. Следует помнить о том, что формат Dbf имеет много разновидностей, однако большая часть различий, по-видимому, содержится в индексных файлах, поэтому, если вам нужно использовать его с другой системой, вам, возможно, придется перестроить их.

Для встроенной базы данных, которая хорошо работает на USB-накопителе, я бы посмотрел на SQLite. Существует реализация Delphi DISQLite3, которая имеет бесплатную и профессиональную версия, которая будет работать хорошо и настоятельно рекомендуется. В настоящее время его используют множество программ коммерческого качества, в том числе подобные FeedDemon.

person skamradt    schedule 05.12.2009