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;

   

Супер!