2014-01-16 26 views
1

В настоящее время я тестирую Delphi XE5, чтобы решить, обновим ли мы его. Я наткнулся на то, что кажется проблемой конфигурации IDE.Испытание Delphi XE 5 - проблемы ORA-12154

Как мы работаем с Oracle (11g Release 11.2.0.3.0 - 64-битную Production) Я пытаюсь настроить одновременно TFDConnection и TSQLConnection и подключиться к базе данных в design time только для целей тестирования.

По какой-то причине оба неисправны с ошибкой ORA-12154, но только во время разработки. Если я оставлю настроенные соединения и активировать их на runtime, он отлично работает. Например, я могу получить данные из базы данных.

Я указываю базу данных, используя tnsnames.ora описание. После вы можете увидеть определение соединения Firedac (конфигурация соединения DBEXPRESS использует ту же базу данных, пользователей и т.д.):

Firedac connection definition

И отчет среды:

================================ 
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 работы correctyl при использовании из TOAD, моей старой установки Delphi 2006 и если я активирую соединения во время выполнения.

Проблема должна лежать где-то в моей конфигурации IDE. До сих пор я не мог найти решения для этого. Любые идеи о том, что я мог проверить?

ответ

3

В старых версиях Oracle Client имеется ошибка, которая приведет к ora-12154, если вызывающее приложение находится в пути к каталогу, который содержит символы скобок (что произойдет для 32-разрядных приложений, установленных на 64-битной Windows, включая Delphi IDE.) Oracle исправила ошибку в 11.2 и более новых клиентах (и я видел ее в некоторых системах 11.2). Номер Oracle Bug для этого - # 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.

Во время разработки приложение, использующее клиент Oracle, является Delphi, а не проектом .exe. На 64-битной установке пути по умолчанию для Delphi имеют текст в скобках для описания версии ОС.