Показать сообщение отдельно
Старый 11.02.2011, 08:53   #28  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,443 / 1781 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Cтранно что этот код вообще работает. Вы же НЕ блокируете курсор для обновления. Попробуйте перед изменением курсора перевыбрать его.
А ещё для того чтобы изменения отображались на форме нужно обновить(refresh) источник данных
X++:
for (purchReqTableLocal = fds.getFirst(true) ? fds.getFirst(true) : fds.cursor(); purchReqTableLocal; purchReqTableLocal = fds.getNext())
{
    ttsbegin;
    purchReqTableLocal.selectForUpdate(true);
    purchReqTableLocal.reread()
    purchReqTableLocal.Archives = !purchReqTableLocal.Archives;
    purchReqTableLocal.doUpdate();
    ttscommit;
    fds.reread();
    fds.refresh();
}
Цитата:
Сообщение от Geo Посмотреть сообщение
записи реально не изменяются (убедился через журнал базы данных)
А он (журнал баз данных) настроен на протоколирование изменений Archives таблицы PurchReqTable? Проверяйте лучше напрямую (обозревателем таблиц) в самой таблице PurchReqTable.

P.S.: Если вы работает не просто с табличным курсором, а с источником данных, то у вас также есть возможность использовать метод fds.write(), который сам управляет транзакциями и отображением изменений.
За это сообщение автора поблагодарили: Geo (1).