首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi:从BDE迁移到DBExpress教程

Delphi:从BDE迁移到DBExpress教程
EN

Stack Overflow用户
提问于 2012-02-06 22:24:40
回答 3查看 4.7K关注 0票数 1

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

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

我在谷歌上搜索了一下,找到的只是Bob博士的一篇文章,没有提到索引,也没有演示如何使用排序方法。所有其他文章都是对DBExpress的一般性描述,没有与我相关的细节。

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

EN

回答 3

Stack Overflow用户

发布于 2012-02-06 23:38:38

TTable和TClientDataSet是非常不同的数据访问方法。我将建议两条迁移路径:

  1. 正如您所说的DBF/MDX,请注意Advantage数据库和TAdsTable。您会发现它与TTable的兼容性比与TClientDataSet和dbExpress.
  2. Consider Anydac及其作为迁移路径的TADTable更兼容。除了Anydac的其他功能之外,TADTable看起来是一个兼容的、速度更快的TTable替代品。
票数 1
EN

Stack Overflow用户

发布于 2012-02-06 23:46:47

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

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

dbExpress是一个数据访问层,可以通过“驱动程序”与不同的数据库服务器协同工作,就像ODBC/BDE/OLEDB一样。决定在dbExpress中只使用单向数据集,重用现有TClientDataset的缓存/游标功能来提供双向游标和缓存。如果仅使用TClientDataset,则根本不使用dbExpress,并且TClientDataset可以处理实现所需接口(包括BDE接口)的任何dataset。

如果你正在寻找小型的免费引擎(MySQL只有在你的应用程序是GPL的情况下才是免费的),你应该看看像SQLite,Firebird (如果你只需要本地访问,有一个“嵌入式”版本)或Postgres这样的替代品,或者有几个商业引擎的精简版本(即SQL Server Express和Oracle Express),或者相对便宜的引擎。

票数 1
EN

Stack Overflow用户

发布于 2012-02-07 04:20:51

你找不到这样做的人是有原因的;这不仅仅是一个糟糕的想法,而且可能几乎是不可能的。

我建议你放弃使用ClientDataSet的想法,因为它不会被认为是“你永远需要的唯一数据库”,并考虑使用IBObjects商业版!加上火鸟免费,或dbExpress +一个受支持的SQL Db,或Interbase Express (IBX)组件,随Delphi提供。

您会发现,您需要一个完整的关系型SQL dbms,甚至是一个非常小或很轻的关系SQL dbms,来替换BDE,甚至是您可能已经使用过的dBase、Access或Paradox表的特性集。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9161583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档