Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 RDB$GET_CONTEXT(). дополнительные возможности  [new]
zigorzn
Member

Откуда:
Сообщений: 12
Добрый день.

Просьба добавить получение информации из MON$DATABASE,MON$ATTACHMENTS, MON$TRANSACTIONS с помощью RDB$GET_CONTEXT(... , ....), без обращения с помощью запроса к системным таблицам.
Нужны данные только по текущему подключению/транзакции.
(При обращении к системным таблицам sysdba/rdb$admin получаем информацию о чужих подключениях.)

пример:
получить кодировку подключения RDB$GET_CONTEXT('SYSTEM' , 'MON$CHARACTER_SET_ID') или RDB$GET_CONTEXT('MON$ATTACHMENTS' , 'MON$CHARACTER_SET_ID')
получить признак read only транзакции RDB$GET_CONTEXT('USER_TRANSACTION' , 'MON$READ_ONLY') или RDB$GET_CONTEXT('MON$TRANSACTIONS' , 'MON$READ_ONLY')
11 сен 17, 09:42    [20785743]     Ответить | Цитировать Сообщить модератору
 Re: RDB$GET_CONTEXT(). дополнительные возможности  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 57676
zigorzn> Нужны данные только по текущему подключению/транзакции.
zigorzn> (При обращении к системным таблицам sysdba/rdb$admin
zigorzn> получаем информацию о чужих подключениях.)

Если чужие не нужны - их можно отфильтровать Where = current_connection.

Вообще, хотелка была бы полезной, если бы можно было не делать снапшот,
но для 'MON$TRANSACTIONS' всё равно снапшот делать придётся, AFAIU.

Posted via ActualForum NNTP Server 1.5

11 сен 17, 09:47    [20785760]     Ответить | Цитировать Сообщить модератору
 Re: RDB$GET_CONTEXT(). дополнительные возможности  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7415
zigorzn
получить признак read only транзакции RDB$GET_CONTEXT('USER_TRANSACTION' , 'MON$READ_ONLY') или RDB$GET_CONTEXT('MON$TRANSACTIONS' , 'MON$READ_ONLY')


уже есть начиная с 2.5.3

RDB$GET_CONTEXT('SYSTEM', 'READ_ONLY')


Получение кодировки можно было бы и добавить, только переменную назвать иначе, например CHARACTER_SET
11 сен 17, 09:49    [20785770]     Ответить | Цитировать Сообщить модератору
 Re: RDB$GET_CONTEXT(). дополнительные возможности  [new]
zigorzn
Member

Откуда:
Сообщений: 12
MON$ATTACHMENTS в версиях FB2.5 и FB3 отличаются. А так просто запросил имя хоста RDB$GET_CONTEXT(... , 'MON$REMOTE_HOST'), если нет такого столбца, то получил null.
11 сен 17, 10:21    [20785863]     Ответить | Цитировать Сообщить модератору
 Re: RDB$GET_CONTEXT(). дополнительные возможности  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 7415
zigorzn,

идея со столбцами очень плоха. В 3.0 сделай себе PSQL функцию и запрашивай. В 2.5 можно сделать ХП. А вообще обращаться к MON$ из клиентских сессий не лучшая идея (в 2.5 особенно).
11 сен 17, 10:27    [20785899]     Ответить | Цитировать Сообщить модератору
 Re: RDB$GET_CONTEXT(). дополнительные возможности  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 256
zigorzn,

Я понимаю, сам склеротик. Забыл бедолага программист в какой кодировке сам же к базе подключился, какие параметры транзакции сам прописал. Бывает.
11 сен 17, 13:39    [20786668]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить