Показать сообщение отдельно
Старый 03.12.2008, 14:16   #28  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
?
Цитата:
Сообщение от Eldar9x Посмотреть сообщение
Интересно. Insert() метод таблицы вызывается каждый раз при вызове recordSortedList.ins(custTable); С другой стороны, вставка в БД проиходит, только если вызван
insertDatabase
2 eldar: можно поподробнее описать ситуацию с вызовом метода insert() при вызовах recordSortedList.ins(custTable) - на какой версии Ax тестировался код (привести пример кода) и на основе чего сделан такой вывод?

Написал небольшой кусок для эксперимента :
X++:
static server void main( Args _args)
{
    RecordSortedList    recordSortedList    ;
    CustTable           custTable           ;
    Counter             counter             ;
    ;

    recordSortedList = new RecordSortedList( tablenum( CustTable ) );
    recordSortedList.sortOrder( fieldnum( custTable,AccountNum ) ) ;

    ttsbegin;
    for( counter = 1; counter <= 100; counter++ )
    {
        custTable.AccountNum = strfmt( "Cust_%1", counter ) ;
        custTable.CreditMax = counter * 100.0 ;

        info( strfmt( "before recordSortedList.ins %1 record", counter ) ) ;
        recordSortedList.ins( custTable ) ;
    }

    info( 'before recordSortedList.insertDatabase' ) ;
    recordSortedList.insertDatabase() ;
    ttscommit;
}
По результатам работы видно что перекрытый метод custTable.insert() начинает отрабатывать только при фактической вставке в БД после вызова recordSortedList.insertDatabase():
Изображения