Delphi 从FIB+迁移应用程序的经验证/推荐方法;启动DAC组件

Delphi 从FIB+迁移应用程序的经验证/推荐方法;启动DAC组件,delphi,delphi-xe3,fibplus,firedac,Delphi,Delphi Xe3,Fibplus,Firedac,我正在迁移一大系列内部具有硬连线FIB+连接的应用程序来启动Dac组件,我正在寻找一些最省力的方法,如何做到这一点 首先,我对后端进行了解耦和迁移,以获得连接中立和依赖连接的部分,并手动重构现有应用程序。我也写过FireDac的部分 要迁移Delphi代码似乎没有问题 但ass中最大的痛苦似乎是在设计时将组件迁移到表单和数据模块上:我安装了GExpert,并尝试使用其命令Replace components来定义如何映射某些属性的规则,但它丢失了组件之间的相互引用,这可能是由于逐步替换过程中的类

我正在迁移一大系列内部具有硬连线FIB+连接的应用程序来启动Dac组件,我正在寻找一些最省力的方法,如何做到这一点

首先,我对后端进行了解耦和迁移,以获得连接中立和依赖连接的部分,并手动重构现有应用程序。我也写过FireDac的部分

要迁移Delphi代码似乎没有问题

但ass中最大的痛苦似乎是在设计时将组件迁移到表单和数据模块上:我安装了GExpert,并尝试使用其命令Replace components来定义如何映射某些属性的规则,但它丢失了组件之间的相互引用,这可能是由于逐步替换过程中的类型不兼容

我目前的方法是手工操作:在旧FIB+组件的名称中添加后缀,将原始名称复制并粘贴到新的对应Fire Dac组件。我对所有组件重复此步骤,然后正确设置属性并删除FIB+组件。它允许我在这个过程中反复检查旧设置

有没有人有一些行之有效的/推荐的方法来做得更好

谢谢,pf在以下几个方面:

  • 如果您正在为不同的SQL操作使用属性,那么您可以从FireDAC TADQuery派生TMyQuery。TMyQuery将创建TADUpdateSQL,并在TMyQuery界面中发布它的XXSQL属性。此外,您还可以在TMyQuery中引入FireDAC TADQuery中遗漏的其他FIBPlus属性和方法
  • 您可以对其他FIBPlus组件使用类似的方法来实现FireDAC和FIBPlus之间的高兼容性级别
  • 您可以使用FireDAC加载项工具ADDFMChanger来自动将PAS/DFM从FIBPlus迁移到FireDAC。然后,安装和迁移将类似于。FireDAC/AnyDAC插件,您可以从中下载
  • 主要的迁移问题可能是FireDAC/FIBPlus行为的差异。我不能在这里发表评论,因为我没有FIBPlus的经验

  • 投票以不具建设性的方式结束,因为这个问题肯定会引起争论。我明白了:可以通过谷歌搜索、在帮助中阅读、MSDN、维基百科、源代码或从其他资源获得的问题只允许……不一定,尽管部分是正确的。我的观点是,人们会给出他们认为是“最佳”解决方案的意见,并且可能会引起人们的争论。在我看来,设计时组件最无痛的一步似乎取代了*.dfm文件中的类类型。我担心我会陷入设计时的地狱,在.dfm有效之前,无法打开表单设计器。不幸的是,仅仅更改一个类型或简单属性是不够的:例如,FIB+数据集对每个SQL操作都有属性:select、refresh、insert、update、delete,但任何Dac都只有一个SQL属性->替换需要将UpdateObject引入表单等。。。无论如何,我会尝试一下——也许复制并粘贴UpdateObject.ad的定义1,2)这是一个有趣的想法,因为我在FireDac和应用程序之间插入了一个“层”。ad 3)我已经使用了你的工具,但目前没有成功(类似于其他替代工具,如GExpert、GReplace)-也许在应用你的想法模拟FIB+interace后,那些1:1映射工具将是有用的。广告4)我以前做过任何Dac试验的基本测试,似乎没有问题。(3)“没有成功”-没有信息很难说。无论如何,在应用(1)和(2)之后,您不应该在“草稿”迁移方面遇到问题。但是接下来你应该准备好(4),因为会有区别。ad(3)它与ad转换器功能无关,而是与FIB+->FireDac迁移本身有关,我无意提供相关的详细信息。但有一件事可能非常有用:从中删除属性的规则。dfm:我尝试了[something]->[]->[],但它用空白名称替换了原始名称。(3)感谢您的注意,我们将对此进行检查。最后,我使用了您的建议(1)将更新对象封装到我的TADQuery子体中,并使用我的一组迁移源的规则添加fmchanger.exe。这样,我就减少了Delphi设计时间,剩下的工作与迁移普通代码的任务相同。谢谢