Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Список локальных баз / 14 сообщений из 14, страница 1 из 1
09.11.2006, 17:48
    #34117165
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Как извлечь список баз установленных на локальном компьютере
В Oracle - просто пропарсить tnsnames.ora
или реестр
Как это сделать в ASA/ASE ?
Просто не хочется портить интерфейс. Есть у кого-нибудь предложения?
...
Рейтинг: 0 / 0
09.11.2006, 18:37
    #34117338
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
В ASA нет такого понятия как "список баз на локальном компьютере".
В ASA запускаешь процедуру db_locate_servers() получаешь список всех серверов в LAN, потом для каждого из серверов по очереди пытаешься подконнектится без указания базы, и если сумел даешь команду select "Alias" from sa_db_info(); и получаешь список всех баз запущеных на этом сервере. Если не сумел подключится ни к одной базе на серевре - облом, задача не решается.
Ну а так как db_locate_servers() это функция из dblib требующая колбеков, то на чистом PB задача не решается вообще.

---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
09.11.2006, 18:51
    #34117371
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Для ASE это отражено в таблице master..sysdatabases. Также как и в MS SQL...
...
Рейтинг: 0 / 0
10.11.2006, 10:25
    #34118447
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Маленькое добавление по терминологии

Как извлечь список баз установленных на локальном компьютере
В Oracle - просто пропарсить tnsnames.ora


В tnsnames.ora как раз НЕ прописываются базы (в подавляющем большинстве случаев), установленные на ЛОКАЛЬНОМ компе. Там прописываются базы, к которым есть ДОСТУП с данного локального компа
...
Рейтинг: 0 / 0
10.11.2006, 10:45
    #34118541
Геннадич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
На oracle можно ходить и без tnsnames.ora вот так:
Код: plaintext
SQLCA.ServerName = "(description=(address=(protocol=tcp)(host=MY_IP)(port=PORT_NUMBER))(connect_data=(sid=MY_SID)))" 
...
Рейтинг: 0 / 0
10.11.2006, 11:55
    #34118895
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
tru55Маленькое добавление по терминологии

Как извлечь список баз установленных на локальном компьютере
В Oracle - просто пропарсить tnsnames.ora


В tnsnames.ora как раз НЕ прописываются базы (в подавляющем большинстве случаев), установленные на ЛОКАЛЬНОМ компе. Там прописываются базы, к которым есть ДОСТУП с данного локального компа
И это тоже не соответствует действительности :)

В tnsnames прописываются лишь отображения алиасов(имен) и адресов серверов БД.
Алиас в общем случае может указывать на несуществующую БД.
Кроме того как было отмечено, доступ к БД можно осуществить вообще без алиаса.
...
Рейтинг: 0 / 0
10.11.2006, 12:30
    #34119067
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Anatoly Moskovsky tru55Маленькое добавление по терминологии

Как извлечь список баз установленных на локальном компьютере
В Oracle - просто пропарсить tnsnames.ora


В tnsnames.ora как раз НЕ прописываются базы (в подавляющем большинстве случаев), установленные на ЛОКАЛЬНОМ компе. Там прописываются базы, к которым есть ДОСТУП с данного локального компа
И это тоже не соответствует действительности :)

В tnsnames прописываются лишь отображения алиасов(имен) и адресов серверов БД.
Алиас в общем случае может указывать на несуществующую БД.
Кроме того как было отмечено, доступ к БД можно осуществить вообще без алиаса.

Ну, это уже копание в мелочах
Этак и я могу покритиковать

1. кроме алиасов, в tnsnames прописывается SID или SERVICE_NAME базы (а что такое отображение адреса, я вообще не знаю)
2. алиас может указывать на несуществующую базу. Однако, с таким же успехом на несуществующую базу может указывать и SID базы (не говоря уже о том, что существующая база м.б. выключена)
3. я в курсе, что доступ к базе Oracle может осуществляться без алиаса и без tnsnames. В Oracle существуют несколько разных способов разрешения имен - host naming, через Oracle Internet Directory, Oracle Names (устаревший), local naming (вот это как раз через tnsnaming), через External naming

PS Поэтому, когда я писал, что "к ним имеется доступ", имелся ввиду ПОТЕНЦИАЛЬНЫЙ доступ (а реальный доступ проверяет tnsping, и то с оговорками)

PPS в предыдущем посте я просто не хотел углублятся в эти детали
...
Рейтинг: 0 / 0
10.11.2006, 13:14
    #34119297
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
tru55 Anatoly MoskovskyВ tnsnames прописываются лишь отображения алиасов(имен) и адресов серверов БД.

1. кроме алиасов, в tnsnames прописывается SID или SERVICE_NAME базы (а что такое отображение адреса, я вообще не знаю)


Отображение имен и адресов серверов - это задание соответствия множества адресов серверов множеству имен.

Все записи в tnsnames являются описанием алиасов.
SID или SERVICE_NAME не описываются в tnsnames, а могут лишь указываться там как часть адреса сервиса, наряду со множеством других атрибутов.
PPS в предыдущем посте я просто не хотел углублятся в эти детали
Вы привели информацию и озаглавили ее как дополнение к терминологии, хотя термин ДОСТУП был применен некорректно - tnsnames за доступ вообще не отвечает (так же как и телефонный справочник например за телефонную связь). Так что я не детализировал, а поправлял приведенную информацию.
...
Рейтинг: 0 / 0
10.11.2006, 13:53
    #34119462
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Ну, если уж конкретно по терминологии и выражениям...

1. Там прописываются базы, к которым есть ДОСТУП

tnsnames за доступ вообще не отвечает

Где я говорил, что tnsnames отвечает за доступ? Он используется процессом разрешения имен, который имеет отношение к доступу к БД

2. кроме алиасов, в tnsnames прописывается SID или SERVICE_NAME базы

SID или SERVICE_NAME не описываются в tnsnames

Я сказал "прописываются", т.е. указываются, а не "описываются".
К слову сказать, эти вещи вообще нигде не "описываются", например service_names - это всего лишь параметр базы, задаваемый в виде
service_names = <значение> в файле параметров, под этим именем экземпляр регистрируется в listener

3. В tnsnames прописываются лишь отображения алиасов(имен)

ну и уж совсем из смежной области. Есть люди, которые имеют псевдонимы / клички. Значит ли это, что указывая псевдоним, я совсем ничего не обозначаю, или все таки это способ указания на КОНКРЕТНОГО человека

PS а вообще мое уточнение касалось, в основном, фразы, выделенной мной в посте, т.е. ключевое слово локальных
...
Рейтинг: 0 / 0
13.11.2006, 10:39
    #34122994
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Спасибо, конечно
Но для Oracle у меня и так все отработано
Поставим вопрос по другому:
Как в ASA/ASE сделать красивый выпадающий список с выбором БД
...
Рейтинг: 0 / 0
13.11.2006, 10:41
    #34123007
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Извиняюсь, насчет выражения - локальных
Но я думаю и так все поняли
Редко у кого локально Oracle крутится с нормальной базой
...
Рейтинг: 0 / 0
13.11.2006, 10:59
    #34123074
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Если речь идет о функциональности, аналогичной tnsnames, то взять список всех ODBC источников и отфильтровать его по драйверу.
Не знаю есть ли для этого отдельные вызовы в ODBC API, но в любом случае эту информацию можно узнать из реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources - список,
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\<DSN> - описание конкретного DSN
Для общих DSN нужно смотреть в HKEY_LOCAL_MACHINE, для личных - в те же ветки HKEY_CURRENT_USER
...
Рейтинг: 0 / 0
13.11.2006, 12:38
    #34123540
spas2001
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Спасибо, должно подойти
Это же примерно я для mdb-ников делал когда-то
...
Рейтинг: 0 / 0
13.11.2006, 18:21
    #34124958
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Список локальных баз
Anatoly Moskovskyто взять список всех ODBC источников и отфильтровать его по драйверу.
Не знаю есть ли для этого отдельные вызовы в ODBC APIЕсть конечно. SQLDataSources() - выдаст список имен всех объявленных в системе DSN (юзерских или системных или и тех и других) и имена драйверов на которых эти DSN построены.

---
http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Список локальных баз / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]