Delphi F2051单元ADODB使用不同版本的ADOInt.\u命令编译

Delphi F2051单元ADODB使用不同版本的ADOInt.\u命令编译,delphi,ado,Delphi,Ado,我继承了一些Delphi7代码,并试图迁移到Delphi2010。 我已经完成了所有的表单和代码更新,但当我尝试运行时,我得到了上面标题中的消息。 我有4个access数据库文件,由程序查询。我在MS Access 2013中打开了这些,它们看起来都不错。 有趣的是,当我创建一个新项目并添加相同的ADO组件时,网格中显示的数据非常好。 我已经尝试了论坛上列出的与F2051错误相关的各种选项,但没有结果。 谁能告诉我哪里出了问题。 聪明的想法 Tony检查项目源(DPR)和/或已迁移应用程序项目的

我继承了一些Delphi7代码,并试图迁移到Delphi2010。 我已经完成了所有的表单和代码更新,但当我尝试运行时,我得到了上面标题中的消息。 我有4个access数据库文件,由程序查询。我在MS Access 2013中打开了这些,它们看起来都不错。 有趣的是,当我创建一个新项目并添加相同的ADO组件时,网格中显示的数据非常好。 我已经尝试了论坛上列出的与F2051错误相关的各种选项,但没有结果。 谁能告诉我哪里出了问题。 聪明的想法

Tony

检查项目源(DPR)和/或已迁移应用程序项目的设置

您可以在
uses
列表中找到明确的条目,这些条目引用通常是VCL/RTL一部分的ADO单元

或者,您可能会发现相关ADO*.pas文件与DPR文件本身放在同一位置

或者,您可以在项目搜索路径中引用的位置找到这些单元

不管是哪种方式,问题很可能是旧项目从VCL源代码中获取单元并将其放置在项目特定位置以允许对这些单元进行更改的结果。这是一种修复VCL单元中错误的技术,只要单元的接口未被修改和/或所有相关单元都被类似地重新编译,该技术就可以工作

单元的
接口
部分确定其他单元如何链接到该单元,如果更改该接口,则与这些其他单元的链接将断开。如果可以重新编译这些其他单元,则可以解决这一问题,但对于VCL单元,这通常会导致这些问题,因为这些其他单元通常是重新编译的

一旦确定了项目中涉及的已更改VCL单元,则应将更改后的版本与后续编译器(Delphi 2010)提供的版本进行比较。您可能会发现,Delphi 7项目中的更改是为了修复单元的标准VCL版本中现在已修复的错误,在这种情况下,您可以从项目中删除修改后的ADO VCL单元,只需使用VCL版本即可

或者,您可能会发现在Delphi 7单元中所做的更改需要移植到Delphi 2010版本,在这种情况下,您应该复制项目组织,允许使用Delphi 2010单元在Delphi 2010项目中重新编译相关单元,然后将Delphi 7版本中的更改合并到Delphi 2010单元中:

Delphi 7 original.pas            Delphi 2010 original.pas

      ^                                      \
    diff  --------------------------------> port
      v                                       _\|

Delphi 7 modified.pas                   Delphi 2010 modified.pas
请注意,如果Delphi 2010原始版本与Delphi 7原始版本不同,则必须小心移植项目所需的更改,而不撤消其他修复,也不影响修改单元的
接口。

检查项目源(DPR)和/或迁移的应用程序项目的设置

您可以在
uses
列表中找到明确的条目,这些条目引用通常是VCL/RTL一部分的ADO单元

或者,您可能会发现相关ADO*.pas文件与DPR文件本身放在同一位置

或者,您可以在项目搜索路径中引用的位置找到这些单元

不管是哪种方式,问题很可能是旧项目从VCL源代码中获取单元并将其放置在项目特定位置以允许对这些单元进行更改的结果。这是一种修复VCL单元中错误的技术,只要单元的接口未被修改和/或所有相关单元都被类似地重新编译,该技术就可以工作

单元的
接口
部分确定其他单元如何链接到该单元,如果更改该接口,则与这些其他单元的链接将断开。如果可以重新编译这些其他单元,则可以解决这一问题,但对于VCL单元,这通常会导致这些问题,因为这些其他单元通常是重新编译的

一旦确定了项目中涉及的已更改VCL单元,则应将更改后的版本与后续编译器(Delphi 2010)提供的版本进行比较。您可能会发现,Delphi 7项目中的更改是为了修复单元的标准VCL版本中现在已修复的错误,在这种情况下,您可以从项目中删除修改后的ADO VCL单元,只需使用VCL版本即可

或者,您可能会发现在Delphi 7单元中所做的更改需要移植到Delphi 2010版本,在这种情况下,您应该复制项目组织,允许使用Delphi 2010单元在Delphi 2010项目中重新编译相关单元,然后将Delphi 7版本中的更改合并到Delphi 2010单元中:

Delphi 7 original.pas            Delphi 2010 original.pas

      ^                                      \
    diff  --------------------------------> port
      v                                       _\|

Delphi 7 modified.pas                   Delphi 2010 modified.pas
请注意,如果Delphi 2010原始版本与Delphi 7原始版本不同,则必须小心移植项目所需的更改,而不撤消其他修复,也不影响修改单元的
接口。

检查项目源(DPR)和/或迁移的应用程序项目的设置

您可以在
uses
列表中找到明确的条目,这些条目引用通常是VCL/RTL一部分的ADO单元

或者,您可能会发现相关ADO*.pas文件与DPR文件本身放在同一位置

或者,您可以在项目搜索路径中引用的位置找到这些单元

不管是哪种方式,问题很可能是旧项目从VCL源代码中获取单元并将其放置在项目特定位置以允许对这些单元进行更改的结果。这是一种修复VCL单元中缺陷的技术,其工作时间与INTF相同