![]() |
#13 |
Участник
|
Цитата:
Сообщение от S.Kuskov
![]() А может это из-за того что какое-то значение в текущей строке под курсором было изменено пользователем ещё до выполнения обновлений в цикле, но не было сохранено в БД. Т.е. строка источника данных перешла в состояния редактирования. Тогда описываемое вами поведение объясняется тем, что research вызывает потерю фокуса на текущей строке, что в свою очередь вызывает сохранение ранее изменённых но ещё не сохранённых и уже не актуальных данных.
Хотя при такой последовательности действии наверное должна возникнуть ошибка вроде "Данные уже были изменены другим пользователем ..." или что-то в таком духе Проблемы нет если выделенных строк не много или выделили их не через "ctrl + A", а по честному все - т.е. shift+мышь, ctrl+мышь или встать на первую запись потом нажать shift+ctrl+end. Т.е. когда все изменяемые записи попали в кэш до запуска перебора. Получается когда подгружается кэш, текущий курсор помечается как обновленный. Вот стэк вызовов где происходит write текущего курсора [c] \Forms\PriceDiscAdm\Data Sources\PriceDiscAdmTrans\Methods\write 3 [c] \Classes\FormDataSource\leaveRecord [c] \Classes\FormDataSource\executeQuery [c] \Classes\FormDataSource\research [c] \Classes\FormButtonControl\Clicked 51 [c] \Classes\FormMenuButtonControl\Clicked |
|
Теги |
executequery, query, research, как правильно |
|
|