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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.12.2010, 15:03   #21  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,320 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Кажется понял - почему у меня сработало. В моем примере не было предыдущего reread(). Т.е. если в Вашем примере убрать первые строки с reread(), то все отработает независимо от вызова clear();
X++:
static void JobTestCommonReread(Args _args)
{
    InventTable InventTable, InventTable2;
    RecId RecId;
    ;
 
    select firstonly InventTable;
    RecId = InventTable.RecId;
 
//    InventTable2.RecId = RecId;
//    InventTable2.reread();
//    info(InventTable2.ItemId);
 
    InventTable2.clear(); 
    InventTable2.RecId = RecId;
    InventTable2.reread();
    info(InventTable2.ItemId);
}
А вот конкретно исходный пример на той же 4.0SP2 действительно отработал как Вы и писали
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 15.12.2010, 15:46   #22  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Действительно, clear не "портит" пустой курсор. Интересно, а есть ли вообще смысл в использовании метода clear(), ведь вместо него всегда можно присвоить курсору NULL? И как выясняется иногда это даже надёжнее

P.S.: Ещё проблемы с методом clear() - оригинальный orig:
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
clear() - полностью стирает только клиенстскую версию, а на сервере курсор остаётся со старым orig

Последний раз редактировалось S.Kuskov; 15.12.2010 в 15:55.
Старый 15.12.2010, 16:58   #23  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,320 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Интересно, а есть ли вообще смысл в использовании метода clear(), ведь вместо него всегда можно присвоить курсору NULL? И как выясняется иногда это даже надёжнее
В качестве предположения - можно смоделировать такую ситуацию:
Передаем курсор в какой-либо метод, который его (до)заполняет и вставляет / обновляет запись в БД.
Передаем мы (к примеру) CustTrans. На "входе" в метод стоит параметр типа CustVendTrans или Common. Если в методе выполнить метод clear(), то он обнулит все поля, не изменив инициализацию входящего параметра. Т.е. наша переменная типа CustVendTrans (Common) будет все равно знать, что она на самом деле CustTrans-овая.

Если же мы присвоим null, то наша переменная потеряет свою "CustTrans-овость". Что недопустимо, т.к. внутри метода - эта информация будет уже невосстановима.
__________________
Возможно сделать все. Вопрос времени
За это сообщение автора поблагодарили: gl00mie (2), S.Kuskov (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Research, refresh, reread шпаргалка Qaz Qwerty DAX: База знаний и проекты 7 03.05.2024 12:17
Kashperuk Ivan: Tutorial: refresh, reread, research, executeQuery - which one to use? Blog bot DAX Blogs 20 04.04.2017 13:23
conPeek() и common.dataareaID Logger DAX: Программирование 12 04.03.2011 00:19
Common.orig() Just_smile DAX: Программирование 2 19.07.2010 11:57
Inside Dynamics AX 4.0: Common Search Blog bot DAX Blogs 0 29.10.2007 10:50

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

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

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