|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
Добрый день. SAP SA 17. Подскажите, как в процедуре БД получить имя или IP компьютера, на котором запущен сервер БД. Спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 15:25 |
|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
SELECT CONNECTION_PROPERTY ( 'ServerNodeAddress' ); ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2019, 06:02 |
|
Получить имя, 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:13 |
|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
Pasha Minsk, Делал когда -то так. Завел служебную таблицу с именами баз, вроде даже в репликацию ее включил Имя текущей базы в эвенте читаем, ну и т.д. В этой таблице хранил всякие специфичные настройки для каждого офиса. Например, ссылка на ветку офиса как подразделения в общем дереве компании. Это помогало разруливать видимость и доступ к документам в разных офисах(базах) в зависимости кому документ передан в условиях репликации. Решение смотрелось мне как не совсем красивое, но работало отлично. Ну и еще на каждой базе ночью запускался внешний скрипт, учитывающий особенности каждой базы (резервное копирование, служебные процедуры и т.п.) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2019, 09:35 |
|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
Почитайте про системные процедуры sa_*, в частности про sa_eng_properties... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2019, 09:38 |
|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
Sergey Orlov, К серверу я бы не привязывался, баз там может быть несколько в общем случае, да и свойства сервера могут поменяться в зависимости от инфраструктуры. У автора наверняка эвент завязан на бизнес-логику именно базы ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2019, 09:50 |
|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
Спасибо! Использовал select Value from sa_eng_properties() where PropName = 'MachineName' Репликация используется для ведения идентичной копии БД на другом компьютере для подключения к ней при отсутствии связи с основной. Поэтому привязка к имени сервера решит задачу. Но да, придется помнить, что при смене инфраструктуры имя сервера не должно меняться или менять имя в процедурах БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2019, 10:24 |
|
Получить имя, IP компьютера
|
|||
---|---|---|---|
#18+
antand Sergey Orlov, К серверу я бы не привязывался, баз там может быть несколько в общем случае, да и свойства сервера могут поменяться в зависимости от инфраструктуры. У автора наверняка эвент завязан на бизнес-логику именно базы Ну так системные процедуры выдают дофига параметров, имя сервера SQL, имя компьютера, ip компьютера, через них можно получить и имена всех баз, которыми управляет этот сервер, партнеров по репликации... Вообщем вагон и маленькую тележку.... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2019, 14:43 |
|
|
start [/forum/topic.php?fid=55&tid=2009578]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
286ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 616ms |
0 / 0 |