我目前正在测试Delphi XE5以决定是否升级到它。我偶然发现了似乎是IDE配置问题。
当我们使用Oracle(11g版本11.2.0.3.0 - 64位生产)时,我尝试设置TFDConnection
和TSQLConnection
并连接到design time
的数据库仅用于测试目的。
出于某种原因,两者都失败并出现错误ORA-12154
,但仅限于设计时。如果我保留配置的连接并在runtime
激活它,它可以正常工作。例如,我可以从数据库中检索数据。
我使用tnsnames.ora
描述指定数据库。下面你可以看到Firedac连接定义(dbExpress连接配置使用相同的数据库,用户等):
环境报告:
================================
Connection definition parameters
================================
Database=DBDES01_NEW
User_Name=SMILO_PRD
Password=*****
DriverID=Ora
================================
FireDAC info
================================
Tool = RAD Studio XE5
FireDAC = 9.0.1 (Build 63974)
Platform = Windows 32 bit
Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
================================
Client info
================================
Loading driver Ora ...
Variable [Explicit Oracle Home]: [E:\oracle\product\10.2.0\client_1\]
Variable [Explicit OCI]: [E:\oracle\product\10.2.0\client_1\BIN\oci.dll]
Searching for Instant Client ...
Not found !
Searching for Oracle Home ...
Checking Oracle Home at key [\Software\Oracle] ...
Checking Oracle Home at key [\Software\Oracle\KEY_OraClient10g_home1] ...
Found [E:\oracle\product\10.2.0\client_1\bin\oci.dll], position [2147483647], in [reg: \Software\Oracle\KEY_OraClient10g_home1]
Home = E:\oracle\product\10.2.0\client_1
Version = 1002000100
OCI DLL name = E:\oracle\product\10.2.0\client_1\bin\oci.dll
TNSNAMES dir = E:\oracle\product\10.2.0\client_1\Network\Admin\tnsnames.ora
NLS_LANG = SPANISH_SPAIN.WE8MSWIN1252
================================
Session info
================================
Failed to connect to DBMS !
[FireDAC][Phys][Ora] ORA-12154: TNS:no se ha podido resolver el identificador de conexión especificado
使用来自TOAD的tnsnames.ora
工作纠正连接,我的旧Delphi 2006安装,如果我在运行时激活连接。
问题必须出在我的IDE配置中。到目前为止,我找不到任何解决方案。关于我可以检查的任何想法?
答案 0 :(得分:3)
如果调用应用程序位于包含括号字符的目录路径中,则旧版Oracle Client中会出现一个错误,如果安装在64位Windows上的32位应用程序(包括Delphi IDE),则会出现ora-12154 。)Oracle修复了11.2和更新客户端中的错误(我在一些11.2系统上看到过它。)Oracle Bug编号为#3807408。我的常见问题页面http://www.benthicsoftware.com/faq.html中还有一些信息。
答案 1 :(得分:1)
我遇到了这个寻找答案的线程,因为我们遇到了类似的问题......在我们的Delphi IDE设计时间内,Oracle连接不起作用,但在运行时它一切都很好。
在我们的公司环境中,我们的计算机具有强制特定(“较旧”)的Oracle客户端版本,根据之前针对Oracle客户端错误的响应。
在设计时,调用Oracle客户端的应用程序是Delphi本身,而不是项目.exe。在64位安装上,Delphi的默认路径使用括号内的文本来描述操作系统版本。