首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi 5试验- ORA-12154个问题

Delphi 5试验- ORA-12154个问题
EN

Stack Overflow用户
提问于 2014-01-16 14:49:14
回答 2查看 2.6K关注 0票数 1

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

当我们使用Oracle (11g版本11.2.0.3.0-64位)时,我试图同时设置一个TFDConnection和一个TSQLConnection,并仅为测试目的连接到design time上的数据库。

由于某些原因,这两种错误的ORA-12154都失败了,但只是在设计时。如果我保留配置好的连接并在runtime上激活它们,它就能正常工作。例如,我可以从数据库中检索数据。

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

和环境报告:

代码语言:javascript
复制
================================
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连接可以纠正从蟾蜍(我的旧的Delphi2006安装)中使用的连接。

问题肯定在我的IDE配置中的某个地方。到目前为止,我还没有找到任何解决办法。我能查到些什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-16 16:01:18

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

票数 3
EN

Stack Overflow用户

发布于 2015-06-05 03:48:10

我看到这条线索是因为我们有一个类似的问题.在Delphi设计时,Oracle连接将无法工作,但在运行时,一切都很好。

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21165035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档