我正在尝试使用带有DBF / MDX数据文件的BDE将Delphi应用程序迁移到使用本地数据文件的DBExpress。
简单地用TClientDataset替换TTable组件会导致涉及索引属性的错误。
我用谷歌搜索了它,而我想出的只是鲍勃博士的一篇文章,它没有提到索引,也没有演示如何使用排序方法。所有其他文章都是DBExpress的一般描述,没有与我相关的细节。
是否有任何教程/示例要遵循的步骤?
答案 0 :(得分:1)
恕我直言,TTable和TClientDataSet是非常不同的数据访问方法。我将建议2个迁移路径:
答案 1 :(得分:1)
此外,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完全适用于您的情况。