2

我在运行我的程序时遇到了问题。我的代码太旧了,我不确定它是如何工作的。

Cannot resolve unit name 'DBTables' at line 20
Underclared indetifier 'EDBEnginerError'
Underclared identifier 'Error'

我认为它缺少 BDE,但如何将其导入我的项目?

我已经尝试过的事情: - 将 BDE 迁移到 FireDac,但没有成功。这些类没有被替换。

4

2 回答 2

7

BDE 已弃用。最新版本的 Delphi 默认不安装 BDE 支持文件。看:

RAD Studio、Delphi、C++Builder 10.2 Tokyo 的 BDE 安装程序

RAD Studio/Delphi/C++ Builder 中的 BDE 组件

安装 BDE,应该允许编译器找到 DBTables.Pas。那应该修复未声明的标识符错误。

这应该能让你继续前进,但如果你需要做任何开发工作,你真的应该考虑更换 BDE。

最初 Delphi 在 1995 年的 DB 支持是基于 BDE,这是 Borland 尝试做的类似于 MS 的 ODBC 的尝试。因此,许多后来的 DB 库,如 FireDAC 包括 TxQuery 和 TxTable 组件,它们的工作方式与 TTable 和 TQuery 类似,因此将一个简单的基于 BDE 的应用程序升级到更现代的 DB 访问库不需要太痛苦, 除非BDE应用程序广泛使用对 BDE 查询引擎的直接调用——这些调用通常带有前缀dbi。如果您的代码中有很多这样的代码,那么您需要进行一段interesting时间的升级。

于 2017-06-01T18:50:45.003 回答
0

尽管 BDE 已被弃用多年,但这并不意味着它不再有效。即使是最新版本的 Delphi 10.2 也附带 Bde.DBTables 单元: http ://docwiki.embarcadero.com/Libraries/Tokyo/en/Bde.DBTables 虽然它可能不是试用版的一部分。

此外,您将需要 BDE 本身,它不再随 Delphi 提供,但仍可以从 Embarcadero 下载。(实际上我不确定,它甚至可能仍然是 Delphi 安装程序中的一个可选部分。)

于 2017-06-02T07:56:18.367 回答