Update_RecordSet
Update_RecordSet относится к многострочным функциям, позволяющим производить обновление либо вставку нескольких записей за одну операцию.
Такие операции существенно уменьшают число запросов к базе данных и позволяют улучшить производительность операций.
Судя по сообщениям коллег, работающих в центре разработки, в 5.0 (а может и раньше, если успеют) планируется использование объединений (inner и outer) в update_RecordSet.
Например, возьмем код:
while select * from custCollectionLetterTrans
where custCollectionLetterTrans.CollectionLetterNum == this.CollectionLetterNum
&& custCollectionLetterTrans.AccountNum == this.AccountNum
&& custCollectionLetterTrans.CollectionLetterIssued
{
custTrans = CustTrans::find(custCollectionLetterTrans.CustTransId, true);
custTrans.CollectionLetterCode = custCollectionLetterTrans.CollectionLetterCode;
custTrans.update();
}
Его реализация в "обновленном" update_RecordSet будет выглядеть так:
update_recordset custTrans
setting CollectionLetterCode = custCollectionLetterTrans.CollectionLetterCode
join custCollectionLetterTrans
where custCollectionLetterTrans.CollectionLetterNum == this.CollectionLetterNum
&& custCollectionLetterTrans.AccountNum == this.AccountNum
&& custCollectionLetterTrans.CollectionLetterIssued
&& custTrans.RecId == custCollectionLetterTrans.CustTransId;
Супер!