2014-01-16 14 views
1

현재 Delphi XE5로 업그레이드 할 것인지 결정하기 위해 테스트 중입니다. 나는 IDE 구성 문제로 보이는 것을 우연히 발견했습니다.Delphi XE 5 평가판 - ORA-12154 문제점

우리는 오라클 (11g Release 11.2.0.3.0 - 64bit Production)에서 작업 할 때 TFDConnectionTSQLConnection을 설정하고 테스트 목적으로 design time에있는 데이터베이스에 연결하려고했습니다.

두 이유 모두 오류 ORA-12154으로 인해 오류가 발생하지만 디자인 타임에만 실패합니다. 연결을 구성한 채로두고 runtime에 활성화하면 제대로 작동합니다. 예를 들어 데이터베이스에서 데이터를 검색 할 수 있습니다.

tnsnames.ora 설명을 사용하여 데이터베이스를 지정합니다.

Firedac connection definition

그리고 환경 보고서 : 다음 tnsnames.ora 작품을 사용하여

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

연결하면 Firedac 연결 정의를 볼 수있는 다음 (dbExpress 데이터 연결 구성은 동일한 데이터베이스, 사용자 등을 사용) correctyl을 TOAD에서 사용할 때, 기존의 Delphi 2006을 설치하고 런타임 중에 연결을 활성화 할 수 있습니다.

문제는 내 IDE 구성에 있어야합니다. 지금까지 나는 이것에 대한 해결책을 찾지 못했습니다. 내가 확인할 수있는 것에 대한 아이디어가 있습니까?

답변

3

호출 응용 프로그램이 괄호 문자가 들어있는 디렉토리 경로에있는 경우 ora-12154가 발생하는 Oracle Client의 이전 버전에는 버그가 있습니다 (이는 64 비트 Windows에 설치된 Delphi IDE) Oracle은 11.2 이상의 새로운 클라이언트에서 버그를 수정했습니다 (일부 11.2 시스템에서이를 보았습니다). Oracle 버그 번호는 # 3807408입니다. 저의 FAQ 페이지 http://www.benthicsoftware.com/faq.html에 더 많은 정보가 있습니다.

+0

이것이 문제가 아닌 경우 TNS_ADMIN 환경 변수를 사용하여 tnsnames.ora 파일의 위치를 ​​강제 지정할 수 있습니다. – MarkF

+0

11g 클라이언트에서 먼저 손을 잡아야하지만 시도해 보겠습니다. TNS_ADMIN 환경 변수에 관해서는 그것이 문제라고 생각하지 않습니다. IDE는'tnsnames.ora' 파일을보고,'FireDac' 연결 컴포넌트의 경우'TFDPhysOracleDriverLink'를 추가하고'TNSAdmin' 속성을 설정하려고했습니다. 내 질문에이 런타임에 작동하지만 디자인 시간에 말했다. 어쨌든, 당신의 대답에 감사드립니다. :-) –

1

우리는 비슷한 문제가 있기 때문에 답변을 검색하는이 스레드를 발견했습니다 ... Delphi IDE 설계 시간 내에 오라클 연결은 작동하지 않지만 런타임에는 괜찮습니다.

우리 회사 환경에서 우리 머신에는 Oracle 클라이언트 버그에 대한 이전 응답에 따라 강제로 특정 ("구형") Oracle 클라이언트 버전이 있습니다.

디자인 타임에 Oracle 클라이언트를 호출하는 응용 프로그램은 프로젝트 .exe가 아닌 Delphi 자체입니다. 64 비트 설치시 Delphi의 기본 경로에는 OS 버전을 설명하는 괄호로 묶은 텍스트가 있습니다.