|
|
#6 |
|
Участник
|
Цитата:
X++: run()
{
Trans trans;
Trans buffer;
boolean reversed;
;
try
{
select trans
order by RecId asc
where trans.open;
while (trans)
{
buffer = Trans::find(trans.recid);
if (!buffer.open)
{
if (!reversed)
{
reversed = true;
select trans
order by RecId desc
where trans.open;
continue;
}
else
{
break;
}
}
ttsbegin;
buffer.selectForUpdate(true);
buffer.open = false;
buffer.doUpdate();
.......
buffer.update()
ttscommit;
next trans;
}
}
catch (Exception::Deadlock)
{
retry;
}
catch (Exception::UpdateConflict)
{
retry;
}
} |
|
|