![]() |
#1 |
Участник
|
Множественная вставка записей
Привет всем !
Подскажите есть вот такой код QueryRun buildQuery(... { ... return new QueryRun(query) } ... query = this.buildQuery(...); while (query.next()) { .... myTable.insert() } Соответственно все это медленно работает. Хотелось бы переделать это на структуру что-то типа insert .... select... Не подскажите как это сделать ? Имеем Axapta 3.0 SP2 Смотрел INSERT_RECORDSET, но ни фига не понял как работать в данном случае с query В программировании в аксапте новичок, поэтому сильно камнями не кидайте. |
|
![]() |
#2 |
Участник
|
а Array Insert смотрел?
AxDvgLangUs.chm::/X++_constructs/Data_Manipulation/Insert/Array_insert.htm |
|
![]() |
#3 |
Участник
|
смотрел.
но как я понял он не работает с объектом типа query или я ошибся. Если можно пример привести, плиз. |
|
![]() |
#4 |
Участник
|
Столкнулся с такой же проблемой, подскажите как это можно реализовать?
|
|
![]() |
#5 |
Участник
|
какая проблема? query выберает записи, а класс RecordInsertList вставляет созданные строки в таблицу
|
|
![]() |
#6 |
Участник
|
А по подробнее можно пожалуйста???
|
|
![]() |
#7 |
Участник
|
подробней о чем? примеры работы данных классов есть в аксапте
|
|
![]() |
#8 |
Участник
|
как это можно сделать
X++: query = new Query(); qbds = query.addDataSource(TableNum(RAssetTrans)); qbds = qbds.addDataSource(TableNum(RAssetTable)); qbds.relations(True); queryRun = new QueryRun(query); rTransList = new RecordInsertList(tableNum(TmpRAssetAmortizationReportGrouping)); if (queryRun.prompt()) { while (queryRun.next()) { rAssetTable = queryRun.get(TableNum(RAssetTable)); rAssetTrans = queryRun.get(TableNum(RAssetTrans)); grouping.data( ); grouping.assetId = RAssetTrans.AccountNum; grouping.BranchId = RAssetTrans.Dimension[1]; grouping.GroupId = RAssetTable.AssetGroup; grouping.Amount[4] = RAssetTrans.AmountCur; rTransList.add(grouping); } rTransList.insertDatabase(); } while select * from grouping { info(strFmt("%1 - %2 - %3 - %4", grouping.assetId,grouping.BranchId,grouping.GroupId,grouping.Amount[4])); } |
|
![]() |
#9 |
Участник
|
в метод table.data() передается переменная тогоже типа для копирования значений всех полей
|
|
![]() |
#10 |
Участник
|
Да, спасибо ice, разобрался, только вот что плохо что он не работает с tmp таблицами ((
|
|
Теги |
ax3.0 |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|