Delphi:从BDE迁移到DBExpress教程
我正在尝试使用BDE和DBF/MDX数据文件将Delphi应用程序迁移到使用本地数据文件的DBExpress 简单地用TClientDataset替换TTable组件会导致涉及索引属性的错误 我在谷歌上搜索了一下,只找到了Bob博士的一篇文章,其中没有提到索引,也没有演示如何使用排序方法。所有其他文章都是DBExpress的一般描述,没有与我相关的细节Delphi:从BDE迁移到DBExpress教程,delphi,dbexpress,bde,Delphi,Dbexpress,Bde,我正在尝试使用BDE和DBF/MDX数据文件将Delphi应用程序迁移到使用本地数据文件的DBExpress 简单地用TClientDataset替换TTable组件会导致涉及索引属性的错误 我在谷歌上搜索了一下,只找到了Bob博士的一篇文章,其中没有提到索引,也没有演示如何使用排序方法。所有其他文章都是DBExpress的一般描述,没有与我相关的细节 是否有要遵循的步骤的教程/示例?IMHO、TTable和TClientDataSet是非常不同的数据访问方法。我将建议两种迁移路径: 正如您所说
是否有要遵循的步骤的教程/示例?IMHO、TTable和TClientDataSet是非常不同的数据访问方法。我将建议两种迁移路径:
不幸的是,TClientDataset本地文件不能替代BDE作为本地数据库引擎。基本上,它们是内存中的数据集,能够将数据保存在磁盘上。但它们缺少许多你可以在BDE中找到的功能。如果您的需求很小,那么它们可以工作(您可以在客户机数据集TIndexDefs属性中定义索引),但它们可能不是您所需要的 此外,TClientDataset不是与dbExpress相关的组件。它们实际上是由MIDAS(后来改名为Datasnap)引入的,作为多层应用程序中远程数据集的客户端(因此得名)(磁盘存储功能允许断开连接的操作) dbExpress是一个数据访问层,它可以通过“驱动程序”与不同的数据库服务器协同工作,就像ODBC/BDE/OLEDB一样。dbExpress中决定只使用单向数据集,重用现有TClientDataset的缓存/游标功能来提供双向游标和缓存。如果只使用TClientDataset,则根本不使用dbExpress,TClientDataset可以与实现所需接口(包括BDE接口)的任何数据集一起使用
如果您正在寻找小型和免费的引擎(只有当您的应用程序是GPL时,MySQL才是免费的),或者可以从商业引擎的精简版本中获得其他几个引擎,那么您应该考虑其他替代方案,如SQLite、Firebird(如果您只需要本地访问,则有一个“嵌入式”版本)或Postgres(即SQL Server Express和Oracle Express)或相对便宜的。你找不到这样做的人是有原因的;这不仅仅是个坏主意,可能几乎不可能
我想建议您放弃使用CeleDeDaseTobe的想法,因为它不被认为是“您所需要的唯一数据库”,并且考虑使用iBobObj[Suffer],再加上FieldBler[Field],或DbExpress +支持的SQL DB,或者使用Delphi来生成的BaseExpress(iBX)组件。 您会发现,您或者需要一个完整的关系型SQL dbms,甚至是一个很小或很轻的dbms,来替换BDE,甚至是您可能已经习惯于使用dBase、Access或Paradox表的功能集
在这种情况下,该选项将完全适用于您的情况。您的具体问题没有什么意义。为什么要用ClientDataSet替换TTable?请详细说明您要完成的任务?您认为TClientDataSet是替换TTable的“无所不能”组件吗?您希望TClientDataSet可以做您想做的一切吗?没有人我能猜出你想要什么。也许是一个代码示例?你是在使用BDE和dBase文件吗?请澄清。我写了一系列关于将BDE应用程序转换为dbExpress/Firebird的博客文章。你可能想看看这篇文章:几年前,我为code Rage III制作了一个关于BDE迁移的视频。这个应用程序被一个非营利组织使用。我更愿意使用免费数据库。你可以将Anydac(商业版)与免费数据库一起使用——Firebird、PostgreSQL、SQLite、SQL Server Express等。这些备选数据库之间有什么功能比较吗?你可以从这里开始:,但你应该真正寻找最适合你需要的数据库。