Показать сообщение отдельно
Старый 18.07.2006, 14:11   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,971 / 3268 (116) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
а если так :
Добавляем в глобал статический метод, а затем при работе с RecordSortedList просто вызываем этот метод с уже переданной отредактированной записью.

Он сам перевыберет из базы обновит значения и запишет.

Одно неудобство - метод предполагает что есть индекс по RecId - иначе очень долго выборка пойдет. Ну это можно довинтить...

PHP код:
  // использовать только если есть 100 %-я уверенность что данные выбранные вне транзакции не изменились
static void updateInTransaction(common _commonboolean _doUpdate false)
    {
        
common  locCommon;
        
SysDictTable    locSysDictTable;
        ;
        
locCommon null;
        
locSysDictTable = New SysDictTable(_common.TableId);
        if (!
locSysDictTable)
            return;

        
locCommon locSysDictTable.makeRecord();

        
ttsBegin;
        
select ForUpdate locCommon
        where
            locCommon
.RecId   == _common.RecId// &&
            // locCommon.TableId == _common.TableId;
        
if (locCommon.recID)
        {
            
buf2buf(_commonlocCommon);

            if (
_doUpdate)
                
locCommon.doUpdate();
            else
                
locCommon.update();
        }
        
ttsCommit;
    }