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

Откуда:
Сообщений: 2177
Читаю доки и вижу, что RDB$SET_CONTEXT распространяется максимум на сессию (подключение).
CREATE GLOBAL TEMPORARY TABLE - то же самое (причём тут тогда GLOBAL непонятно?).

Вопрос: есть какой-нибудь механизм, чтобы можно было передавать временные данные между всеми подключениями, но не писать их на диск?...
Кроме post_event() разумеется.
2 июн 20, 02:17    [22144117]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 31192
alekcvp
CREATE GLOBAL TEMPORARY TABLE - то же самое (причём тут тогда GLOBAL непонятно?).
при том, что бывает ещё и LOCAL.
почитай описание оного у "соседей", например у MS SQL.
2 июн 20, 10:45    [22144214]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 3276
alekcvp
Вопрос: есть какой-нибудь механизм, чтобы можно было передавать временные данные между всеми подключениями, но не писать их на диск?...
Кроме post_event() разумеется.
Есть!
Называется UDR (User Defined Routines).
2 июн 20, 10:52    [22144218]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

rdb_dev
Называется UDR (User Defined Routines).

Особо злобные программисты (как вот я сейчас) могут написать целый провайдер к
какой-нибудь in-memory СУБД. Особо умные - изначально выбирать СУБД под задачу, а не наоборот.

Posted via ActualForum NNTP Server 1.5

2 июн 20, 12:37    [22144279]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
alekcvp
Member

Откуда:
Сообщений: 2177
rdb_dev
alekcvp
Вопрос: есть какой-нибудь механизм, чтобы можно было передавать временные данные между всеми подключениями, но не писать их на диск?...
Кроме post_event() разумеется.
Есть!
Называется UDR (User Defined Routines).

Забыл дописать "встроенные". UDR - это же внешняя библиотека, нет?
Dimitry Sibiryakov
Особо умные - изначально выбирать СУБД под задачу, а не наоборот.
Firebird под мои задачи с головой подходит, но иногда хочется сделать ещё и рюшечки...

Сообщение было отредактировано: 2 июн 20, 12:36
2 июн 20, 12:38    [22144280]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
alekcvp
Member

Откуда:
Сообщений: 2177
Мимопроходящий
alekcvp
CREATE GLOBAL TEMPORARY TABLE - то же самое (причём тут тогда GLOBAL непонятно?).
при том, что бывает ещё и LOCAL.
почитай описание оного у "соседей", например у MS SQL.

Почитал:
In SQL Server, local temporary tables are visible only in the current session. So if you create a local temporary table in one session, you cannot access it in other sessions.
In SQL Server, global temporary tables are visible to all sessions (connections). So if you create a global temporary table in one session, you can start using it in other sessions.
Локальные таблицы, как они есть, только называются почему-то глобальными...
2 июн 20, 12:42    [22144282]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50343

Почувствуй разницу между локальными таблицами и глобальными таблицами, хранящими локальные
данные.

Posted via ActualForum NNTP Server 1.5

2 июн 20, 12:50    [22144286]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 3276
alekcvp
Почитал
Локальные таблицы, как они есть, только называются почему-то глобальными...
Не там прочитал!
Читай Firebird 3.0 Language Reference (Russian) на странице 123 и далее.
2 июн 20, 13:29    [22144308]     Ответить | Цитировать Сообщить модератору
 Re: Глобальный RDB$SET_CONTEXT  [new]
hvlad
Member

Откуда:
Сообщений: 10954
alekcvp
Вопрос: есть какой-нибудь механизм, чтобы можно было передавать временные данные между всеми подключениями, но не писать их на диск?...
Таблица. Обычная таблица.
Если данных много - то без неё не обойтись.
Если мало - то запись на диск не проблема.

PS Зато нет проблем с конкурентным доступом - уже всё сделано в СУБД.
2 июн 20, 14:33    [22144358]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить