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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.07.2011, 16:38   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Если select на сервере а next на клиенте...
Таким незамысловатым способом я хотел было вернуть выборку на клиента и там её перебрать.
X++:
static server InventTable getCursor()
//static client InventTable getCursor()
{
    InventTable InventTable;

    select InventTable;

    return InventTable;
}
X++:
static void jobTest()
{
    InventTable InventTable = testClass::getCursor();
    int cnt = 10;
    ;

    while (InventTable)
    {
        info(InventTable.ItemId);
        next InventTable;

        cnt--;
        if (!cnt) break;
    }
}
Но не тут то было. Next на клиенте упорно не хочет получать следующие записи
За это сообщение автора поблагодарили: titov (3).
Старый 07.07.2011, 17:08   #2  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Попробовал сделать так:
X++:
static void jobTest()
{
    InventTable InventTable = Class1::getCursor();
    int cnt = 10;
    ;

    while(cnt)//Заменил InventTable на cnt
    {
        info(InventTable.ItemId);
        next InventTable;
        
        cnt--;
        if (!cnt) break;
    }
}
Получил ошибку:
Цитата:
Ошибка времени выполнения. : В данном контексте команду NEXT выполнить нельзя. Возможные причины: (a) буфер инициализирован на сервере, (b)не вызван запрос SELECT, (c) SELECT вызван, но строк не найдено, или (d) данные переданы с помощью метода DATA().
Предполагаю, что причина невозможности выполнения NEXT указана в пункте (а) ошибки, потому что данная конструкция, выполненная в методе того же класса работает отлично.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 07.07.2011 в 17:13.
За это сообщение автора поблагодарили: titov (3), S.Kuskov (3).
Старый 07.07.2011, 17:16   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от samolalex Посмотреть сообщение
Получил ошибку:
Ошибку вы получили на второй итерации, ккогда выполнение до инструкции Next дошло уже во второй раз. В этот момент значение курсора уже было NULL, из-за того что на первой итерации Next не выбрал нужной записи.

Вопрос. Почему он её не выбрал?

Цитата:
Возможные причины: (a) буфер инициализирован на сервере...
Значит всё-таки нельзя . Жаль

Последний раз редактировалось S.Kuskov; 07.07.2011 в 17:18.
Старый 08.07.2011, 12:00   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Интересно, что если на сервере курсор сделать временным и наполнить теми же данными, то next на клиенте отработает отлично.
За это сообщение автора поблагодарили: samolalex (2).
Теги
client, next, select, server

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxtraining: Select statement patterns Blog bot DAX Blogs 10 20.08.2010 14:01
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
Нюансы класса SetIterator при вызове на клиенте/сервере sparur DAX: Программирование 3 09.06.2008 13:13
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
Формат даты на сервере и клиенте bio_unit DAX: Администрирование 2 25.08.2004 16:44

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

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

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