![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| AlexPet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: 1 Всего: 1 |
Добрый день!
Конфигурация: Windows XP + Perl 5.8.8 от Active State. Установлен DBD::Oracle, вроде последний. Также независимо от перла установлен клиент для Oracle (вместе с Perl PL\SQL Developer) версии ниже, чем для DBD::Oracle (10 и 8, вроде). На сервере Oracle 10. Есть файл TNSNAMES.ORA, в котором записаны alias'ы для БД (включающие такую необходимую инфу как Port, Host и SID). Что хотелось бы: вытаскивать в массив всю структуру из tnsnames для последующего использования в диалоге подключения под Tk, типа выпадающий список, выбираем alias, набираем имя\пароль и, используя данные из полученного массива, делать connect к соотв. базе. Ситуация осложняется тем, что приложение будет запускаться (возможно) не на одном компьютере, и путь, по которому находится TNSNAMES.ORA, может разниться от компа к компу. Какие существуют методы для вытягивания инфы из TNSNAMES.ORA? Самый в лоб, который я вижу, это брать откуда-то (возможно, из реестра... либо парсить PATH на предмет вхождения orant) полный путь к файлу и парсить его самостоятельно. Может, есть какие-нибудь пути поизящнее? Поделитесь опытом |
|||
|
||||
| ZeeLax |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: нет Всего: 88 |
Хм.. Насколько помню, поиск tsnames.ora выполняется относительно пути, указанном в ORACLE_HOME.
-------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
|||
|
||||
| AlexPet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: 1 Всего: 1 |
Дело в том, что в переменных окружения такой переменной нет.
НО: Orac-alpha-1.2.6 прекрасно находит все алиасы (да и компонента под Дельфи тоже), хотя единственная переменная, в которой есть упоминание об Oracle - это PATH. |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
AlexPet, смотри в реестре.
|
|||
|
||||
| AlexPet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: 1 Всего: 1 |
shamber, спасибо.
Значит, смотрю в HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ORACLE_HOME корневой адрес, делаю конкатенацию с "\NET80\ADMIN\TNSNAMES.ORA" и получаю имя файла. Далее, видимо (если я ошибаюсь, поправьте), будем парсить вручную |
|||
|
||||
| AlexPet |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 5.12.2007 Где: Брянск Репутация: 1 Всего: 1 |
В общем, сегодня вернулся к данной проблеме и сделал так:
Может, кому понадобится (по-моему, получилось как в компоненте для Delphi |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |