1

我目前正在测试 Delphi XE5 以决定我们是否升级到它。我偶然发现了似乎是 IDE 配置问题。

当我们使用 Oracle(11g 版本 11.2.0.3.0 - 64 位生产)时,我试图设置 aTFDConnection和 aTSQLConnection并连接到数据库,design time仅用于测试目的。

由于某种原因,两者都因错误而失败ORA-12154,但仅在设计时。如果我保留连接配置并激活它们,runtime它工作正常。例如,我可以从数据库中检索数据。

我正在使用tnsnames.ora描述指定数据库。下面可以看到Firedac连接定义(dbExpress连接配置使用相同的数据库、用户等):

Firedac 连接定义

和环境报告:

================================
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

tnsnames.ora从 TOAD、我较旧的 Delphi 2006 安装以及如果我在运行时激活连接时使用正确的作品进行连接。

问题一定出在我的 IDE 配置中。到目前为止,我找不到任何解决方案。关于我可以检查什么的任何想法?

4

2 回答 2

3

如果调用应用程序位于包含括号字符的目录路径中(安装在 64 位 Windows 上的 32 位应用程序,包括 Delphi IDE,则会发生这种情况),旧版本的 Oracle 客户端中存在一个错误,该错误将导致 ora-12154。Oracle修复了 11.2 和更新的客户端中的错误(我在一些 11.2 系统上看到过。)Oracle 错误编号是 #3807408。在我的常见问题页面http://www.benthicsoftware.com/faq.html中有更多信息。

于 2014-01-16T16:01:18.327 回答
1

我遇到了这个寻找答案的线程,因为我们有一个类似的问题......在我们的 Delphi IDE 设计时间内,Oracle 连接将无法工作,但在运行时一切都很好。

在我们的公司环境中,我们的机器有一个强制的特定(“旧”)Oracle 客户端版本,根据之前关于 Oracle 客户端错误的响应。

在设计时,调用 Oracle 客户端的应用程序是 Delphi 本身,而不是项目 .exe。在 64 位安装上,Delphi 的默认路径有括号中的文本来描述操作系统版本。

于 2015-06-05T03:48:10.253 回答