Ax2009. По необходимости переписал все классы CCADO...() на работу на стороне сервера, добавив везде
X++:
new InteropPermission(InteropKind::ComInterop).assert();
Однако теперь вполне стандартный код вроде
X++:
ccADORecordSet = ccADOCommand.execute();
while (!ccADORecordSet.EOF())
{
info(any2str(ccADORecordSet.fields().itemIdx(0).value()));
ccADORecordSet.moveNext();
}
сканирует только одну (первую) запись выборки. Первая же команда moveNext() переводит RecordSet в состояние EOF() и цикл завершается. В выборке больше одной записи. Это показывает RecordCount()
Метод ccADORecordSet.moveNext() добавил в класс ccADORecordSet по аналогии со старыми версиями Axapta. Т.е. там только собственно команда recordSet.moveNext()
В чем причина подобного поведения и как исправить?
PS: Соединение необходимо устанавливать именно на стороне сервера. Поэтому варианты выполнения на стороне клиента - не годятся.