Показать сообщение отдельно
Старый 20.12.2002, 11:48   #1  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
! Осторожно! Грабли!
Пару раз наступив, хочу предостеречь коллег.

Стандартная схема:
1. Есть форма с гридом и есть кнопочка, вызывающая какую-то обработку текущей строки
2. При нажатии кнопочки запускается процесс, где в классе (форме) обработки выполняется строка
myTable = args().record();
3. В процессе выводится некий диалог с пользователем.
4. Делается окончательная обработка с использованием курсора myTable

Все работает замечательно... но в один "прекрасный" день пользователь на шаге 3 за какой-то надобностью полез обратно в форму с гридом и перешел на другую запись.
В результате на шаге 4 мы используем уже другую(!!!) запись из myTable.

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

Решение:
На шаге 2 использовать строку
myTable.data(args.record());