Перейти к основному содержимому
Версия: 4.x

Оператор NESTEDSESSION

Оператор NESTEDSESSION- создание действия, которое выполняет другое действие во вложенной сессии.

Синтаксис

NESTEDSESSION action 

Описание

Оператор NESTEDSESSION создает действие, которое выполняет другое действие во вложенной сессии. При этом все изменения, уже произошедшие в текущей сессии, попадают в создаваемую вложенную сессию. Также все изменения, которые будут произведены во вложенной сессии, попадут в текущую сессию при применении изменений во вложенной сессии.

Параметры

Примеры

testNestedSession ()  {
NESTEDSESSION {
name(Sku s) <- 'aaa';
APPLY; // на самом деле изменения применятся не в базу данных, а в "верхнюю" сессию
}

MESSAGE (GROUP SUM 1 IF name(Sku s) == 'aaa'); // возвращает все строки
CANCEL;
// возвращает NULL, если в базе не было раньше Sku с именем aaa
MESSAGE (GROUP SUM 1 IF name(Sku s) == 'aaa');

}

FORM sku
OBJECTS s = Sku PANEL
PROPERTIES(s) id, name
;
newNestedSession() {
NESTEDSESSION {
NEW s = Sku {
// показывает форму, но любые изменения в ней не будут применены в базу данных,
// а будут сохранены в "верхней сессии"
SHOW sku OBJECTS s = s;
}
}
}