2011-01-10 1 views
0

В Delphi 2010 я хочу подключиться к экземпляру Oracle XE, установленному на моей собственной машине, с использованием компонентов ODAC (TOraSession). Когда я устанавливаю параметры для соединения, я получил сообщение об ошибке «ORA-12154: TNS: не удалось разрешить указанный идентификатор соединения».Ошибка ORA-12154 в Delphi для подключения, которое работает в TOAD

Однако, используя те же параметры (и тот же файл TNSNames.Ora), я могу подключиться с помощью TOAD.

Может ли кто-нибудь помочь мне в этом.

Заранее спасибо

ответ

1

Если вы работаете на x64 ОС и у вас есть Delphi (или любое программное обеспечение пытается получить доступ к Oracle), установленный в пути с помощью скобок (т.е. (x86) ...) в то время как ЖАБА нет, вы можете столкнуться с этой ошибкой.

См. DocID 334528.1 в службе поддержки Oracle (если у вас есть доступ). Эта ошибка была исправлена ​​в более позднем патче, но для XE не существует официального патча (в основном это 10.2.0.1).

Я бы не использовал Oracle XE, потому что он является неприступной версией, но для нее не выпускается патч. Мне нужен Oracle для самообучения, вы можете загрузить полное программное обеспечение по адресу http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html (проверьте лицензию), если вам нужен бесплатный сервер баз данных в другом месте.

+0

Вы правы, я использую Windows 7 64 бит. –

+0

Хорошо, в каких дорожках находятся Дельфы и Жаба? –

+0

DELPHI: C: \ Program Files (x86) \ Embarcadero \ RAD Studio \ 7.0 \ bin и TOAD: C: \ Мои программы \ Quest Software \ Toad для Oracle 10.5 –

0

Возможно, вы не используете ту же самую tnsnames.ora (хотя вы и думаете, что знаете). Это может произойти, если у вас есть, например, установлен 10г клиент Oracle и ODAC 11.

Чтобы увидеть, если это вопрос TNSNAMES вы можете попробовать подключиться без TNSNAMES из кода, как это:

(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = [MyHost]) (PORT = [MyPort]))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = [MyOracleSID])); User Id = [myUsername]; Password = [MyPassword];

заменяя значения между [] с фактическими значениями так (HOST = 128.1.7.9) (PORT = 1521) ....