Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ODAC и TNSNAME [D7]


alsov ©   (2007-10-05 11:56:00) 

Приветствую, Мастера

Вопрос к знатокам ODAC компонентов.
Нужно сделать следующее:
При прямом подключении TOraSession.Options.Net := True нужно чтобы параметр Server вычитывался  стандартными средвствами оракла из tnsnames.ora, а не задавался черел server:port:sid

Возможно ли такое?
Заранее благодарен за ответы


alsov   (2007-10-15 11:39:00) [1]


> по-хорошему надо думать насчет повышния версии клиента,
> а то Direct Mode не поддерживает некоторые фичи 10-ки. Это
> к примеру.

Заказчику это неприемлимо :), да и сервер у них на 9-ке и переходить не собираются.
А клиент-восьмерка, причем обрезаная до "мама не балуйся" (для спец софта установлена).
Пробовали ставить 10-ку - софт не работает с 10-м клиентом :), поэтому прямое подключение.


Petr V. Abramov   (2007-10-11 23:08:00) [2]

> evvcom ©   (11.10.07 09:47) [15]
использование неймсервера - часто идея здравая.
> alsov ©  
по-хорошему надо думать насчет повышния версии клиента, а то Direct Mode не поддерживает некоторые фичи 10-ки. Это к примеру.


alsov   (2007-10-11 16:30:00) [3]


> А вообще, я бы, наверное, забил.


Так и сделал :)
Прямое подключение предпочтительней, а оно не предусматривает общения с OCI.


evvcom   (2007-10-11 09:47:00) [4]


> GetOraServerList, но она парсит tnsnames.ora

ну а большего я тебе и не обещал :)
если мало, тогда [12], ищи инфу. А вообще, я бы, наверное, забил. Выставь заказчику калькуляцию на чтение неймсервера на огромную сумму и приличные сроки выполнения, и он откажется от этой идеи :)


alsov   (2007-10-10 15:36:00) [5]

to_all
Может неправильно выразился.
Надо получить параметры сервера стандартными методами, т.е. если в tnsnames нет - смотреть неймсервер.

В одаке нашел в OdacGui.inc функцию GetOraServerList, но она парсит tnsnames.ora


evvcom   (2007-10-10 09:01:00) [6]


> Petr V. Abramov ©   (09.10.07 17:22) [12]

существует 2 разных его "надо":
[0]

> чтобы параметр Server вычитывался  стандартными средвствами
> оракла из tnsnames.ora

и

> alsov ©   (05.10.07 15:13) [2]
> Есть желание заказчика получать адрес сервера с ораклового
> неймсервера

короче, хз, какое из этих "надо" правильное, я подумал, что его устроит вариант с tnsnames


Petr V. Abramov   (2007-10-09 17:22:00) [7]

evvcom ©   (08.10.07 15:15) [10]
так человеку ж надо с nameserver`a sid получать, а не из tnsnames.
api взаимодействия с nameserver`ом нужно.


alsov   (2007-10-08 16:31:00) [8]


> evvcom ©   (08.10.07 15:15) [10]

Спасибо - буду копать в этом направлении


evvcom   (2007-10-08 15:15:00) [9]


> Видимо невозможно такое реализовать.

Не люблю такие слова: "невозможно", "нельзя". В самом ODAC есть функционал парсинга tnsnames.ora. Посмотри ConnectDialog.GetServerList, эта функция как раз и раскручивает список серверов из tns. Мне сейчас лень опять это ковырять, но я на основе этого писал приблуду для частичного обновления/добавления строк в пользовательском tnsnames на основе серверного файла.


alsov   (2007-10-08 11:33:00) [10]


> Sergey13 ©   (08.10.07 11:25) [8]

На этом способе и остановился. При установке будут адрес указывать и в настройки программы вынес в интерфейсе.

Вобщем крутил-вертел - ничего не вышло с подключением через стандартные средства, а работой напрямую. Видимо невозможно такое реализовать. А жаль :(


Sergey13   (2007-10-08 11:25:00) [11]

> [7] alsov ©   (08.10.07 11:23)

Ну, тогда спросить у пользователя 1 раз и запомнить в инишнике. 8-)


alsov   (2007-10-08 11:23:00) [12]


> Ну а если решать в лоб - парсить server:port:sid из tnsnames.
> ora? Синтаксис у файла довольно жесткий.


Не подойдет. Т.к. сервер может быть прописан как напрямую в tnsnames, так и в sqlnet.ora адрес неймсервера


Sergey13   (2007-10-08 10:46:00) [13]

> [5] alsov ©   (08.10.07 10:32)

Ну а если решать в лоб - парсить server:port:sid из tnsnames.ora? Синтаксис у файла довольно жесткий.


alsov   (2007-10-08 10:32:00) [14]

Сори что долго не отзывался.


> Petr V. Abramov ©   (06.10.07 01:00) [3]
>
> > получать адрес сервера с ораклового неймсервера.
> загнул
> это уже протокол TNS копать надо, по-моему, даже в OCI такого
> нет.


Может неправильно выразился - надо напрямую подцепиться к серверу, зная только tnsname.


> так к какому Oracle надо коннектиться?

Сервер 9-й


Petr V. Abramov   (2007-10-06 01:03:00) [15]

> На машинах установлен клиент 8-го оракла
так к какому Oracle надо коннектиться?


Petr V. Abramov   (2007-10-06 01:00:00) [16]

> получать адрес сервера с ораклового неймсервера.
загнул
это уже протокол TNS копать надо, по-моему, даже в OCI такого нет.
хотя можно попробовать инициализировать хендлы и посмотреть их атрибуты. Подробнее завтра посмотрю, но ковырять-пробовать - Вам


alsov   (2007-10-05 15:13:00) [17]


> Petr V. Abramov ©   (05.10.07 13:08) [1]


На машинах установлен клиент 8-го оракла (использеут другой софт), где не поддерживается передача блобов параметром в хранимую процедуру, грит надо 8i. С использованием net работает на ура.

Есть желание заказчика получать адрес сервера с ораклового неймсервера.


Petr V. Abramov   (2007-10-05 13:08:00) [18]

Если на машине есть "стандартные средства" и tnsnames, зачем прямое подключение?


Наверх

Титульная страница Поиск, карта сайта Написать письмо