Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
13.11.2019, 15:25
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
Добрый день. SAP SA 17. Подскажите, как в процедуре БД получить имя или IP компьютера, на котором запущен сервер БД. Спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 06:02
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
SELECT CONNECTION_PROPERTY ( 'ServerNodeAddress' ); ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 09:13
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
Компостеров SELECT CONNECTION_PROPERTY ( 'ServerNodeAddress' ); Спасибо! Но при запросе этого свойства есть нюанс: "When the client and server are both on the same computer, an empty string is returned." (( А задача такая, что в основной и реплицированной базе (на другом компьютере) есть EVENTы, которые должны срабатывать только в основной. Поэтому нужна проверка, на каком компьютере сработал EVENT. Но при данном ограничении такой запрос бесполезен ( Или есть еще какие идеи по решению задачи? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 09:35
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
Pasha Minsk, Делал когда -то так. Завел служебную таблицу с именами баз, вроде даже в репликацию ее включил Имя текущей базы в эвенте читаем, ну и т.д. В этой таблице хранил всякие специфичные настройки для каждого офиса. Например, ссылка на ветку офиса как подразделения в общем дереве компании. Это помогало разруливать видимость и доступ к документам в разных офисах(базах) в зависимости кому документ передан в условиях репликации. Решение смотрелось мне как не совсем красивое, но работало отлично. Ну и еще на каждой базе ночью запускался внешний скрипт, учитывающий особенности каждой базы (резервное копирование, служебные процедуры и т.п.) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 09:38
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
Почитайте про системные процедуры sa_*, в частности про sa_eng_properties... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 09:50
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
Sergey Orlov, К серверу я бы не привязывался, баз там может быть несколько в общем случае, да и свойства сервера могут поменяться в зависимости от инфраструктуры. У автора наверняка эвент завязан на бизнес-логику именно базы ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 10:24
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
Спасибо! Использовал select Value from sa_eng_properties() where PropName = 'MachineName' Репликация используется для ведения идентичной копии БД на другом компьютере для подключения к ней при отсутствии связи с основной. Поэтому привязка к имени сервера решит задачу. Но да, придется помнить, что при смене инфраструктуры имя сервера не должно меняться или менять имя в процедурах БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.11.2019, 14:43
|
|||
---|---|---|---|
|
|||
Получить имя, IP компьютера |
|||
#18+
antand Sergey Orlov, К серверу я бы не привязывался, баз там может быть несколько в общем случае, да и свойства сервера могут поменяться в зависимости от инфраструктуры. У автора наверняка эвент завязан на бизнес-логику именно базы Ну так системные процедуры выдают дофига параметров, имя сервера SQL, имя компьютера, ip компьютера, через них можно получить и имена всех баз, которыми управляет этот сервер, партнеров по репликации... Вообщем вагон и маленькую тележку.... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=55&mobile=1&tid=2009578]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 131ms |
0 / 0 |