2009-12-05 68 views
1

如何用delphi生成DBF文件?生成DBF文件

更多信息:

我需要一个可移植的数据库在一个随身碟

来看,我不知道,如果DBF是更好的soluttion。

我喜欢MySQL,但很难找到一个便携版本

我使用XML在这个时候,但我不知道如何做一个查询。

回答

3

TDBF似乎是最常用的(并且仍保持)包之一:

http://tdbf.sourceforge.net/

+0

确实还在使用(自己在FreePascal中使用它),但显然维护者已经放弃了它。见例如http://bugs.freepascal.org/view.php?id=19961 – reiniero 2011-11-01 11:10:13

1

未处理的年份!
根据您使用的Delphi版本和您想要执行的操作,您可以使用BDE或查找一些直接读取/写入DBF本机文件格式的专用组件。

1

虽然我没有使用它,但有一个组件jdDbf似乎是最近更新,似乎它会工作。需要注意的是,Dbf格式有许多特点,但是大多数差异似乎都在索引文件中,所以如果您需要将其与另一个系统一起使用,则可能需要重建它们。

对于在USB驱动器上运行良好的嵌入式数据库,我会看看SQLite。有一个德尔福执行DISQLite3其中有一个免费和专业版本,将运作良好,并强烈建议。目前有很多商业质量计划正在使用它,其中包括FeedDemon等。

1

哇,我很惊讶这个网址仍然有效!

如果你想创建一个DBF与BDE API,你可以在这里使用的技术: http://info.borland.com/devsupport/bde/bdeapiex/dbicreatetable.html

但是,这取决于你将拥有数据集的大小,这听起来像一个单用户应用程序,它可以很好地处理“MyBase”文件 - TClientDataSet使用的文件的另一个名称。您可以通过设置TClientDataSet.FileName属性将其保存为XML或二进制(CDS)格式,该属性将用于读取和写入数据集。你甚至可以用这个创建嵌套数据集。

如果您想拥有最高效的单用户模式,请关闭TClientDataSet上的ChangeLog。

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

如果您打开替代格式,我强烈建议您检查嵌入Firebird。我敢肯定,我在两年前作为一个实验加载了我的数据库和我的应用程序在闪存驱动器上,并且运行良好。我坚持DBF文件很长一段时间,但一旦我切换,我永远不会回去。如果您想尝试一下,请考虑使用DBExpress和Interbase驱动程序。虽然它没有官方支持,但我还没有发现任何不兼容。对于可视化管理工具,请获取IBExpert的个人版。

+0

使用SQLite将是另一个不错的选择。数据库直接编译到可执行文件中。所有你必须部署的exe和db文件,不需要安装 – 2009-12-05 05:58:03

+0

+1 for SQLite - 它正在成为嵌入式数据库的事实标准.. – 2009-12-07 17:24:16