Показать сообщение отдельно
Старый 28.02.2018, 08:37   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Update курсора таблицы, полученного из контейнера, не действует
Добрый день. Написан следующий абстрактный код:

X++:
    //объявления всех используемых переменных
    //...

    ttsbegin;

    select forupdate * from telegram
        where telegram.RecId == 5637147106;
    
    telegram.Sign += '-';
    telegram.update();
    ttscommit;
в результате все работает как надо, данные обновлены.

НО(!) есть и такой код:
X++:
    //объявления всех используемых переменных
    //...

    ttsbegin;

    select forupdate * from telegram
        where telegram.RecId == 5637147106;

    //Помещаем курсор таблицы в контейнер
    telegramCon = conins(telegramCon, 1, telegram);

    //... забываем на время...

    //...

    //вспоминаем, достаем обратно
    telegram = conpeek(telegramCon, 1);
    
    telegram.Sign += '-';
    telegram.update();
    ttscommit;
в результате ИЗМЕНЕНИЯ ИГНОРИРУЮТСЯ, в БД то же значение Sign

Почему, господа?