我目前正在測試Delphi XE5以決定是否升級到它。我偶然發現了一個似乎是IDE配置問題的東西。Delphi XE 5試用 - ORA-12154問題
我們與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
使用tnsnames.ora
作品連接正確的使用從TOAD,舊的Delphi 2006安裝,以及如果我在運行時激活連接。
該問題必須存在於我的IDE配置中。到目前爲止,我找不到任何解決方案。關於我可以檢查的任何想法?
如果這不是問題,則可能需要使用TNS_ADMIN環境變量來強制執行tnsnames.ora文件的位置。 – MarkF
我會試一試,但首先我必須親自參與11g客戶端。至於TNS_ADMIN環境變量,我懷疑這是問題所在。 IDE會看到'tnsnames.ora'文件,對於'FireDac'連接組件,我嘗試添加'TFDPhysOracleDriverLink'並設置'TNSAdmin'屬性。正如我在我的問題中所說的,這在運行時工作,而不是在設計時。無論如何,謝謝你的回答。 :-) –