Delphi:从BDE迁移到DBExpress教程

时间:2012-02-06 14:24:40

标签: delphi dbexpress bde

我正在尝试使用带有DBF / MDX数据文件的BDE将Delphi应用程序迁移到使用本地数据文件的DBExpress。

简单地用TClientDataset替换TTable组件会导致涉及索引属性的错误。

我用谷歌搜索了它,而我想出的只是鲍勃博士的一篇文章,它没有提到索引,也没有演示如何使用排序方法。所有其他文章都是DBExpress的一般描述,没有与我相关的细节。

是否有任何教程/示例要遵循的步骤?

3 个答案:

答案 0 :(得分:1)

恕我直言,TTable和TClientDataSet是非常不同的数据访问方法。我将建议2个迁移路径:

  1. 正如您所说的DBF / MDX,请注意Advantage Database和TAdsTable。你会发现它与TTable的兼容性要比使用TClientDataSet和dbExpress更兼容。
  2. Anydac及其TADTable视为迁移路径。除了其他Anydac功能之外,TADTable看起来是兼容且更快速的TTable替代品。

答案 1 :(得分:1)

遗憾的是,TClientDataset本地文件不能替代BDE作为本地数据库引擎。基本上,它们是内存数据集,能够将数据保存在磁盘上。但它们缺少你在BDE中可以找到的许多功能。如果您的需求很小,他们可以工作(您可以在客户端数据集TIndexDefs属性中定义索引),但它们可能不是您需要的。

此外,TClientDataset不是与dbExpress相关的组件。它们实际上是与MIDAS(后来改名为Datasnap)一起引入的,作为多层应用程序中远程数据集的客户端(因此名称)对应(磁盘存储的功能允许断开连接的操作)。

dbExpress是一个数据访问层,可以通过" drivers"与ODBC / BDE / OLEDB一起使用不同的数据库服务器。决定在dbExpress中只使用单向数据集,重用已存在的TClientDataset的缓存/光标功能来提供双向游标和缓存。如果您只使用TClientDataset,则根本不使用dbExpress,TClientDataset可以使用任何实现所需接口的数据集(包括BDE)。

你应该看看像SQLite,Firebird这样的替代品(如果你只需要本地访问就有#34;嵌入式"版本)或者如果你正在寻找小型和免费引擎的话,那就是Postgres(MySQL是免费的)只有当你的应用程序是GPL)时,或者有许多其他引擎可以从商用的(或SQL Server Express和Oracle Express)中删除,或者相对便宜。

答案 2 :(得分:0)

你有理由找不到那样做的人;它不仅仅是一个坏主意,它可能几乎是不可能的。

我想建议你放弃使用ClientDataSet的想法,因为它不被认为是"你需要的唯一数据库",并考虑使用IBObjects [商业广告!]加上Firebird [免费],或dbExpress +受支持的SQL Db,或Delphi附带的Interbase Express(IBX)组件。

你会发现你需要一个完整的关系SQL dbms,即使是一个非常小或轻的SQL dbms来替换BDE甚至你可能习惯使用dBase,Access或Paradox表的功能集。

在这种情况下,usual tutorials完全适用于您的情况。