Показать сообщение отдельно
Старый 12.05.2006, 13:29   #19  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,340 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Обычно это делается через while select:
X++:
CustTable custTable;
MyTable   myTable;
;
while select custTable
{
    myTable.clear();
    myTable.fieldForConst = MyConstant;
    myTable.AccountNum = custTable.AccountNum;
    .....
    myTable.insert();
}
Однако Аксапта в случае массовой вставки (как в Вашем случае) предполагает использования класса \System Documentation\Classes\RecordInsertList. С ним также делается все в цикле:
X++:
RecordInsertList ril;
CustTable          custTable;
MyTable            myTable;
;
ril = new RecordInsertList(tablenum(MyTable));
while select custTable
{
    myTable.clear();
    myTable.fieldForConst = MyConstant;
    myTable.AccountNum = custTable.AccountNum;
    .....
    ril.add(myTable);     
}
ril.insertDataBase();
В этом случае вы получите весьма шуструю вставку (по данным ребят, которые исследовали этот класс - по сравнению с предыдущим способом - раз в 10 быстрее, однако я лично не могу ни подтвердить ни опровергнуть это утверждение. Могу сказать лишь что автором утверждения является г-н db )
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 12.05.2006 в 13:33.