Показать сообщение отдельно
Старый 14.11.2006, 18:22   #1  
_A_ is offline
_A_
Участник
 
37 / 10 (1) +
Регистрация: 16.07.2004
Адрес: Минск
обновление поля, входящего в уник. ключ
Может это уже всплывало тут.
Импортом из экселя загоняется таблица RContractTable, далее запускается нижеследующий код, с целью инициализации RContractAccount из нужной номерной серии. Проблема в том что цикл уходит в нирвану и в наборе уже появляются обновленные записи с новым RContractAccount и так до бесконечности. Обновление через еще одну табл. переменную не проходит. Я понимаю что может проблема решится путем написания кода инициализации при импорте, но все хотелось бы пгонять в чем тут дело, может здесь что-то очевидное. Заранее спасибо
X++:
static void updateContractCode(Args _args)
{
     RContractTypes      rContractTypes;
     NumberSeq           numberSeq;
     RContractTable      rContractTable;
     ;
     ttsbegin;
     while select forupdate rContractTable
     {
            rContractTypes = RContractTypes::find(rContractTable.RContractPartnerType,
                                                              rContractTable.RContractCode);
     if (rContractTypes.NumberSequenceCode)
      {
               numberSeq    = NumberSeq::newGetNumFromCode(rContractTypes.NumberSequenceCode,true);
            rContractTable.RContractAccount = numberSeq.num();
            rContractTable.update();

          }
     }
     ttscommit;
}

Последний раз редактировалось _A_; 14.11.2006 в 18:31.