Delphi 无法解析单元名称';数据库表';第20行(BDE)

Delphi 无法解析单元名称';数据库表';第20行(BDE),delphi,delphi-10.2-tokyo,Delphi,Delphi 10.2 Tokyo,我在运行我的程序时遇到了一个问题。我的代码太旧了,我不知道它是如何工作的 Cannot resolve unit name 'DBTables' at line 20 Underclared indetifier 'EDBEnginerError' Underclared identifier 'Error' 我认为它缺少BDE,但如何将其导入到我的项目中 我已经尝试过的事情: -将BDE迁移到FireDac没有成功。这些类未被替换。BDE已被弃用。默认情况下,Delphi的最新版本不安装BD

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

Cannot resolve unit name 'DBTables' at line 20
Underclared indetifier 'EDBEnginerError'
Underclared identifier 'Error'
我认为它缺少BDE,但如何将其导入到我的项目中

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

BDE已被弃用。默认情况下,Delphi的最新版本不安装BDE支持文件。见:

安装BDE应允许编译器查找DBTables.Pas。这将修复未声明的标识符错误

<>这应该让你去,但是如果你需要做任何开发工作,你应该真正考虑替换BDE。< /P>
最初,Delphi在1995年的DB支持是基于BDE的,这是Borland的尝试,类似于MS的ODBC。因此,许多后来的DB库,如FireDAC,都包含了TxQuery和TxTable组件,它们的工作原理与TTable和TQuery类似,因此将一个简单的基于BDE的应用程序升级到一个更现代的DB access库不必太痛苦,除非BDE应用程序广泛使用对BDE查询引擎的直接调用-这些调用通常以
dbi
为前缀。如果你的代码中有很多这样的代码,那么你将面临一次有趣的时间升级。

即使BDE已经被弃用多年,但这并不意味着它不再有效。即使是最新版本的Delphi 10.2也附带了单位Bde.DBTables: 但它可能不是试用版的一部分


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

由于我有一个试用帐户,我无法下载Embarcadero提供的任何内容。当然,我有计划替换溴化二苯醚。首先,我只想用BDE构建我的环境,看看这会有多痛苦。现在我迷路了(请参阅我添加到我的答案中的一点,它可以给您一个线索,看看它是否值得获得付费版本。或者,您可以考虑使用FPC+LaZARSU.FiLDAC包括ReXEX模式,用于自动迁移的重新查找工具(以下主题)。在使用代码之前,您不会取得任何进展。请从在原始环境中编译代码开始。“将BDE迁移到FireDac”-您是如何做到的?不会自动替换这些类的。“迁移”意味着完全修改代码中的每个位置,以使用FireDac组件而不是BDE组件。不仅仅是将其指向不同的单元。最困难的部分应该是将连接组件更改为使用特定属性,而不是单个连接字符串或DSN引用等。PS:BDE自2000年以来就被弃用。@Jerry,不要被自动替换-好吧,可以通过使用包含的正则表达式模式的重新查找工具进行替换。@Jerrydoge:是的,重新进行连接可能会很麻烦,尤其是在TDatabase讨厌的情况下。不过,就我个人而言,由于FireDAC的作者已经离开了(或者被我“放开”)EMBA,避开它可能是明智的。看看Idera的承包商如何维护它会很有趣。如果他们真的这样做了。ADO对我来说似乎更安全。你可以使用。我安装了10.2试用架构师版,然后购买了10.3企业版。BDE在安装专业版中没有作为选项提供但正如您所指出的,它可以作为下载的附加组件提供。