AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 07.07.2011, 16:38   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Если 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 на клиенте упорно не хочет получать следующие записи
This post has been rated by: titov (3).
Old 07.07.2011, 17:08   #2  
samolalex is offline
samolalex
Участник
samolalex's Avatar
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Join Date: 18.06.2010
Location: Москва
Попробовал сделать так:
X++:
static void jobTest()
{
    InventTable InventTable = Class1::getCursor();
    int cnt = 10;
    ;

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

Last edited by samolalex; 07.07.2011 at 17:13.
This post has been rated by: titov (3), S.Kuskov (3).
Old 07.07.2011, 17:16   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Quote:
Originally Posted by samolalex View Post
Получил ошибку:
Ошибку вы получили на второй итерации, ккогда выполнение до инструкции Next дошло уже во второй раз. В этот момент значение курсора уже было NULL, из-за того что на первой итерации Next не выбрал нужной записи.

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

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

Last edited by S.Kuskov; 07.07.2011 at 17:18.
Old 08.07.2011, 12:00   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Интересно, что если на сервере курсор сделать временным и наполнить теми же данными, то next на клиенте отработает отлично.
This post has been rated by: samolalex (2).
Tags
client, next, select, server

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 04:33.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.