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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.11.2007, 13:17   #1  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
setTmpData
Привет всем. Возник такой вопрос. Есть метод в котором объявлены две переменные одной временной таблицы:
X++:
    AnyTmpTable tmp1;
    AnyTmpTable tmp2;
если в методе вставить запись в одну переменную:
X++:
  tmp1.insert();
то выборка по другой таблице ничего не даст:
X++:
select tmp2;
чтобы эти две переменные указывали на одну область данных нужно сделать:
X++:
tmp2.setTmpData(tmp1);
Вот теперь вставка в первый курсор, отразится при выборке из второго курсора.

Вопрос. Как вернуть эти два курсора к первоначальному состоянию? То есть чтобы они указывали на разные области данных
Старый 27.11.2007, 13:24   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
X++:
while select tmp1
    {
        tmp2 = tmp1.data();
        tmp2.write();
    }
Старый 27.11.2007, 13:25   #3  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Если при этом вы хотите сохранить данные в обоих курсорах - то ответ, думаю, никак.
Файл то всего один. И раздваиваться он врядли будет.
То есть нужно именно скопировать все записи из одного курсора в другой (добавляя новые записи).

Если же данные из tmp2 можно "потерять", то просто tmp2 = null; к примеру
За это сообщение автора поблагодарили: Eldar9x (1).
Старый 27.11.2007, 13:32   #4  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
можно и даже нужно.
X++:
tmp1 = null;
tmp2 = null;
действительно, это ведь указатели, как то не подумал... Большое спасибо
Старый 27.11.2007, 13:45   #5  
Eldar9x is offline
Eldar9x
MCTS
Аватар для Eldar9x
Oracle
MCBMSS
 
1,064 / 166 (8) ++++++
Регистрация: 29.09.2006
Адрес: Казань
а после обнуления указателей эти файлы временных таблиц останутся на диске как мусор? Как то не хорошо получается... Надо тогда еще что-нибудь вроде delete tmp1; delete tmp2;

Последний раз редактировалось Eldar9x; 27.11.2007 в 13:47.
Старый 27.11.2007, 13:49   #6  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,731 / 406 (17) +++++++
Регистрация: 23.03.2006
по идее все очищается, при обнулении последней ссылки
Старый 27.11.2007, 14:08   #7  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Да. Файлы автоматически удаляются, когда на них больше не ссылаются объекты Аксапты
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SetTmpData vs = Pavlo AKA Panok DAX: Программирование 11 11.02.2009 18:11
setTmpData Bars DAX: Функционал 13 19.01.2006 07:51
Дополнительные возможности временных таблиц: метод setTmpData vitk DAX: База знаний и проекты 1 19.06.2002 17:53
Что происходит с переменной табличного типа после выхода из функции? vitk DAX: Программирование 3 10.12.2001 15:34
HB_Tutorial_setTmpData - пример использования метода setTmpData vitk DAX: База знаний и проекты 0 10.12.2001 15:26

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

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

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