简体   繁体   English

FireDAC与同一台计算机上的多个Delphi版本冲突

[英]FireDAC conflicts with multiple Delphi versions on the same machine

I know that generally it has always been possible to do a side-by-side installation of multiple Delphi versions on a single computer. 我知道,通常总是可以在一台计算机上并行安装多个Delphi版本。 I have often done that ever since Delphi 1. 自从Delphi 1以来,我经常这样做。

However, after installing Delphi XE7 on a computer that had XE6 installed, I get stange errors (eg AV's) when trying to use FireDAC or FDExplorer from XE7. 但是,在已安装XE6的计算机上安装Delphi XE7后,尝试从XE7使用FireDAC或FDExplorer时出现固定错误(例如AV)。 At first sight everything is OK, but when trying to connect to a database, the connection "hangs", or you get an AV. 乍一看一切正常,但是尝试连接数据库时,连接“挂起”,或者您获得了AV。

Everything works like normal from XE6. 一切都从XE6开始正常运行。

The installation of XE7 was done using default settings, and XE6 was installed including all updates already prior to installing XE7. XE7的安装使用默认设置完成,并且XE6已安装,包括在安装XE7之前已经存在的所有更新。

Any advice? 有什么建议吗?

I did experience same problem myself when first having installed XE7 and defined some connections to Oracle and then installed Delphi XE3 in order to do some stepwise upgrades of third-party components. 最初安装XE7并定义到Oracle的一些连接,然后安装Delphi XE3以便逐步升级第三方组件时,我确实遇到了同样的问题。 Since I also needed FireDAC I installed the Firedac add-on to XE3, but when I installed the FireDAC add-on to XE3, I lost the connection definitions and when trying to define new connections I got error message that the FDconnectionDefs.Ini was not writeable in the directory (in program files(x86) Delphi/FireDAC_XE3 area. 由于还需要FireDAC,因此我将Firedac插件安装到XE3,但是当我将FireDAC插件安装到XE3时,我丢失了连接定义,并且在尝试定义新连接时收到错误消息,提示FDconnectionDefs.Ini不是可在目录中写入(在程序文件(x86)Delphi / FireDAC_XE3区域中。

After checking it turned out that the installer had overwritten the registrations in \\HKCU\\Software\\Embarcadero\\FireDAC key. 检查后,发现安装程序已覆盖\\ HKCU \\ Software \\ Embarcadero \\ FireDAC密钥中的注册。

Turns out the same parameters in that key is reused. 原来,该键中的相同参数被重用。

So conclusion is, don't install FireDAC in elder versions, uncheck that option when installing XE4-XE6. 因此结论是,请勿在旧版本中安装FireDAC,在安装XE4-XE6时取消选中该选项。

(I have sent a suggestion to Dmitry Arefiev that the FireDAC key should have defined new subkeys, one for each Delphi/C++ version so several installations could be used in parallell as before. (我已经向Dmitry Arefiev提出了一个建议,即FireDAC密钥应定义新的子密钥,每个Delphi / C ++版本均应定义一个新的子密钥,因此可以像以前一样并行使用多个安装。

Now that is broken :-( 现在坏了:-(

To clean up, find your correct FDConnectionDefs.ini and change necessary keys. 要清理,请找到正确的FDConnectionDefs.ini并更改必要的密钥。 It may also be possible that the software also has been overwritten. 该软件也可能已经被覆盖。 I did a repair on the latest version of XE7, and after some merging of FDconnectionDefs.ini files I finally got it working 我对最新版本的XE7进行了修复,在合并了FDconnectionDefs.ini文件后,我终于使它工作了

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM