AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2003, 18:31   #1  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
? next и временная таблица
Здравствуйте!

Класс принимает для последующей обработки курсор, являющийся результатом выборки либо из постоянной, либо из временной таблицы. Перебор записей осуществляется командой next :
PHP код:
next myTable
Условием окончания перебора является проверка
PHP код:
myTable.recId == 0
Для постоянных таблиц все отрабатывает нормально. Для временных таблиц next также перебирает все записи, а после последнего next`а выборка остается спозиционированной на последнюю запись -> recId != 0, и выполняется еще один лишний next, который и возвращает ошибку



Нашел похожий пример реализации в системе: класс SalesAutoCreate_TmpSalesLine. Там тоже обрабатывается next`ом временная таблица, и даже в отладчике видно, что после последнего next`а recId становится равным 0, т.е. все отрабатывает корректно. Пытался найти 10 отличий , но все вроде то же самое делаю. В чем закавыка?
Вложения
Тип файла: img11723-1 (14.5 Кб, 745 просмотров)
__________________
Андрей.
Старый 24.04.2003, 01:07   #2  
Vladislav Yushakov is offline
Vladislav Yushakov
Участник
 
47 / 10 (1) +
Регистрация: 10.01.2003
А создается временная таблица каким образом? Может в форме с автодобавлением?Если можно покажи код инициализации и команды select...
Старый 24.04.2003, 11:58   #3  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Что имеется в виду под формой с автодобавлением?

Записи во временную таблицу вставляются через форму, затем из формы по кнопке запускается класс, в который на new() передается эта таблица. Далее она сохраняется внутри класса простой операцией присвоения tmpTable = _tmpTable; , затем делается инициализация выборки: select tmpTable;
После этого запускается метод, перебирающий записи командой next. Все.

Ура! Не успел отправить ответ, а когда вспомнил - уже разрешилось
Дело было как раз в присваивании. Если сделать не "=" , а setTmpData() - все работает правильно. Но интересно то, что в указанном мной выше системном классе тоже использовалась именно операция присваивания! Но там на момент запуска класса уже не было связи таблицы и datasource, т.к. форма к тому моменту закрывалась. А у меня вызов происходит из самой формы -> связь с DS присутствует. Видимо, в этом и было дело.
__________________
Андрей.
Старый 24.04.2003, 16:42   #4  
Vladislav Yushakov is offline
Vladislav Yushakov
Участник
 
47 / 10 (1) +
Регистрация: 10.01.2003
Я рад что все разрешилось Про автодобавление я имел в виду AutoCreate=true на дата соурсе, но теперь это не важно
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Временная таблица Antoncheg DAX: Программирование 21 15.08.2008 18:25
производительность: map или временная таблица kitty DAX: Программирование 5 15.11.2007 12:36
Временная таблица + RLS leshy DAX: Программирование 6 27.04.2006 12:39
Чтение данных за пределами файла, временная таблица zemlyn DAX: Программирование 0 05.12.2005 18:32
select sum(amount) from временная таблица ATimTim DAX: Программирование 6 11.06.2004 14:16

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:02.