Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 德尔福XE 5试验-ORA-12154问题_Oracle_Delphi_Ide_Delphi Xe5_Ora 12154 - Fatal编程技术网

Oracle 德尔福XE 5试验-ORA-12154问题

Oracle 德尔福XE 5试验-ORA-12154问题,oracle,delphi,ide,delphi-xe5,ora-12154,Oracle,Delphi,Ide,Delphi Xe5,Ora 12154,我目前正在测试Delphi XE5,以决定是否升级到它。我偶然发现了一个IDE配置问题 在我们使用Oracle(11g版本11.2.0.3.0-64位产品)时,我尝试设置TFDConnection和TSQLConnection,并在设计时连接到数据库,仅用于测试目的 由于某些原因,两者都出现故障,出现错误ORA-12154,但仅在设计时出现。如果我保持连接的配置,并在运行时激活它们,它就可以正常工作。例如,我可以从数据库中检索数据 我正在使用tnsnames.oradescription指定数据

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

在我们使用Oracle(11g版本11.2.0.3.0-64位产品)时,我尝试设置
TFDConnection
TSQLConnection
,并在
设计时连接到数据库,仅用于测试目的

由于某些原因,两者都出现故障,出现错误
ORA-12154
,但仅在设计时出现。如果我保持连接的配置,并在运行时激活它们,它就可以正常工作。例如,我可以从数据库中检索数据

我正在使用
tnsnames.ora
description指定数据库。下面可以看到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
使用
tnsnames.ora
的连接在TOAD(我以前的Delphi 2006安装)中使用时,如果我在运行时激活连接,则可以正常工作


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

旧版本的Oracle客户端中存在一个bug,如果调用应用程序位于包含括号字符的目录路径中(对于安装在64位Windows上的32位应用程序,包括Delphi IDE),则会导致ora-12154Oracle修复了11.2和更高版本客户端中的错误(我在一些11.2系统上看到过)。Oracle的错误号为#3807408。“我的常见问题解答”页面中有一些详细信息。

旧版本的Oracle客户端中有一个错误,如果调用应用程序位于包含括号字符的目录路径中(对于安装在64位Windows上的32位应用程序,包括Delphi IDE),则会导致ora-12154Oracle修复了11.2和更高版本客户端中的错误(我在一些11.2系统上看到过)。Oracle的错误号为#3807408。在我的faq页面中有更多信息。

我在搜索答案时遇到了这个帖子,因为我们有一个类似的问题。。。在我们的DelphiIDE设计时,Oracle连接无法工作,但在运行时一切正常

在我们的公司环境中,我们的机器有一个强制特定(“较旧”)的Oracle客户端版本,正如先前关于Oracle客户端错误的响应所示


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

我在搜索答案时遇到了这个线程,因为我们遇到了类似的问题。。。在我们的DelphiIDE设计时,Oracle连接无法工作,但在运行时一切正常

在我们的公司环境中,我们的机器有一个强制特定(“较旧”)的Oracle客户端版本,正如先前关于Oracle客户端错误的响应所示


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

如果这不是问题,您可能需要使用TNS_ADMIN环境变量来强制确定tnsnames.ora文件的位置。我将尝试一下,不过首先我必须获得11g客户端的支持。至于TNS_ADMIN环境变量,我怀疑这是问题所在。IDE会看到
tnsnames.ora
文件,对于
FireDac
连接组件,我尝试添加
TFDPhysOracleDriverLink
并设置
TNSAdmin
属性。正如我在问题中所说,这在运行时有效,但在设计时无效。无论如何,谢谢你的回答。:-)如果这不是问题所在,您可能希望使用TNS_ADMIN环境变量来强制确定tnsnames.ora文件的位置。我将尝试一下,不过首先我必须掌握11g客户端。至于TNS_ADMIN环境变量,我怀疑这是问题所在。IDE会看到
tnsnames.ora
文件,对于
FireDac
连接组件,我尝试添加
TFDPhysOracleDriverLink
并设置
TNSAdmin
属性。正如我在问题中所说,这在运行时有效,但在设计时无效。无论如何,谢谢你的回答。:-)