|
|
|
|
#1 |
|
Участник
|
Переписал так, без промежуточного буфера, всё равно долго
X++: ttsbegin; while select forupdate rowQuota { monthDiff = intvNo(rowQuota.DateTo, rowQuota.DateFrom, IntvScale::Month); dayDiff = intvNo(rowQuota.DateTo, rowQuota.DateFrom, IntvScale::Day); if(rowQuota.UsagePeriod <= monthDiff && dayDiff > 0) { do { rowQuota.DateFrom = dateMthFwd(rowQuota.DateFrom, rowQuota.UsagePeriod); rowQuota.DatePotreb = rowQuota.DateFrom; rowQuota.insert(); monthDiff = intvNo(rowQuota.DateTo, rowQuota.DateFrom, IntvScale::Month); dayDiff = intvNo(rowQuota.DateTo, rowQuota.DateFrom, IntvScale::Day); } while(rowQuota.UsagePeriod <= monthDiff && dayDiff > 0); } } ttscommit; |
|
|
|
|
#2 |
|
Участник
|
|
|
|
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|