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;


   


Супер!

Comments (0)

Skip to main content