生成 DBF 文件
Posted
技术标签:
【中文标题】生成 DBF 文件【英文标题】:generate DBF files 【发布时间】:2009-12-05 00:28:52 【问题描述】:如何用delphi生成DBF文件?
更多信息:
我需要一个可移植的数据库以在 pendrive 中运行
我不知道 DBF 是否是更好的解决方案。
我喜欢 mysql 但很难找到便携版
我目前正在使用 XML,但我不知道如何进行查询。
【问题讨论】:
【参考方案1】:TDBF 似乎是最常用(并且仍在维护)的软件包之一:
http://tdbf.sourceforge.net/
【讨论】:
确实还在使用(自己在 FreePascal 中使用),但显然维护者已经放弃了它。参见例如bugs.freepascal.org/view.php?id=19961【参考方案2】:如果您愿意接受其他格式,我强烈建议您查看 Firebird Embedded。我很确定我在大约两年前将我的数据库和我的应用程序加载到闪存驱动器上作为实验,并且运行良好。我坚持使用 DBF 文件很长一段时间,但一旦我做出切换,我就再也不会回去了。如果您想尝试一下,请考虑使用 DBExpress 和 Interbase 驱动程序。虽然它没有得到官方支持,但我没有发现任何不兼容的地方。如需可视化管理工具,请获取 IBExpert 个人版。
【讨论】:
使用 SQLite 将是另一个不错的选择。 DB 直接编译成可执行文件。只需部署exe和db文件,无需安装【参考方案3】:多年来没有处理过这个问题! 根据您的 Delphi 版本和您想要做什么,您可以使用 BDE 或找到一些直接读取/写入 DBF 原生文件格式的专用组件。
【讨论】:
【参考方案4】:哇,我很惊讶这个网址仍然有效!
如果您想使用 BDE API 创建 DBF,可以使用以下技术: 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;
【讨论】:
【参考方案5】:虽然我没有使用它,但有一个组件 jdDbf 最近似乎已更新,看来它可以工作。需要注意的是,Dbf 格式有多种风格,但大多数差异似乎都在索引文件中,因此如果您需要将它与另一个系统一起使用,您可能需要重新构建它们。
对于在 USB 驱动器上运行良好的嵌入式数据库,我会考虑 SQLite。有一个 Delphi 实现 DISQLite3,它有一个免费和专业版,可以很好地工作,强烈推荐。目前有许多商业质量程序正在使用它,包括FeedDemon 之类的。
【讨论】:
以上是关于生成 DBF 文件的主要内容,如果未能解决你的问题,请参考以下文章