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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.08.2006, 13:03   #1  
tricky is offline
tricky
Участник
 
140 / 64 (3) ++++
Регистрация: 03.05.2005
Адрес: Гуково
? overwriteSystemfields
Возникла необходимость изменять значения полей "modifiedDate", "modifiedTime" и "modifiedBy" в записи. Столкнулся с такой проблемой: изменения входят в силу, только если в записи, кроме перечисленных выше полей изменяется и какое-либо из несистемных полей, в противном случае - изменений не происходит.
Можете что-нибудь посоветовать?
Спасибо.
Старый 31.08.2006, 13:07   #2  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
Ну заведи полечко свое и меня его...какие проблем :-)
__________________
любитель портвейна и снов с прокисшей капустой в усах
Старый 31.08.2006, 13:09   #3  
tricky is offline
tricky
Участник
 
140 / 64 (3) ++++
Регистрация: 03.05.2005
Адрес: Гуково
Да вот изменять другие поля не нужно.
А заводить для этих целей отдельное поле, мне кажется, не целесообразным.
Старый 31.08.2006, 14:02   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Правильно делают, что не меняются. Иначе какой смысл с них?
Если я себе закажу 3 машины, а в строке заказа поменяю modifiedby на соседа, то все нормально, да?

Создайте такие поля, как вам нужно, и меняйте их, а системные оставьте системе.
Старый 31.08.2006, 14:17   #5  
lagr221374
Гость
 
n/a
Цитата:
Сообщение от tricky
Да вот изменять другие поля не нужно.
А заводить для этих целей отдельное поле, мне кажется, не целесообразным.
копия затем delete затем -> insert?
Старый 31.08.2006, 14:26   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Нет, ну, если нужно туда подтягивать значения, которые и так бы туда подтянулись, то просто можно изменить значение какого-то поля этой таблицы - любого, сохранив перед этим пред. значение, а потом изменить его назад.

Только, ИМХО, это изврат
Старый 31.08.2006, 14:29   #7  
poul is offline
poul
Участник
 
16 / 11 (1) +
Регистрация: 11.08.2006
Первый вариант, обновлять системное поле напрямую в базе данных :

Connection connection = new Connection();
Statement stmt = connection.createStatement();
str sql;
;
sql = strfmt("UPDATE table1 " +
" SET recId = 3 " +
" WHERE table1.RecId = 2 AND " +
" table1.dataAreaId = '%1' ", curext());
stmt.executeUpdate(sql);
Старый 31.08.2006, 14:34   #8  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Кстати, имхо, они у вас и не обновлялись совсем. Просто при модификации поля они формировались заного, с текущим значением даты и времени.
Возможно и так, проверьте.

С Уважением,
Георгий
Старый 31.08.2006, 14:35   #9  
poul is offline
poul
Участник
 
16 / 11 (1) +
Регистрация: 11.08.2006
и второй вариант использование метода "overwriteSystemFields"
Table2 table2;
;
ttsbegin;
select forupdate firstonly table2;
table2.overwriteSystemfields(true);
table2.(fieldNum(table2, modifiedBy)) = "абр";
table2.doUpdate();
ttscommit;
За это сообщение автора поблагодарили: tricky (1).
Старый 31.08.2006, 14:36   #10  
poul is offline
poul
Участник
 
16 / 11 (1) +
Регистрация: 11.08.2006
второй наверно предпочтительней
Старый 31.08.2006, 15:28   #11  
tricky is offline
tricky
Участник
 
140 / 64 (3) ++++
Регистрация: 03.05.2005
Адрес: Гуково
2 George Nordic: Нет, они обновляются (видно в дебУгере), только после Upate изменений нет. К тому же, если я для компании изменняю какое-нить другое поле, то все Ок.

2 poul: 2-й вариант не годится, т.к. именно так я поступаю. Идея 1-го варианта интересна, но что-то мне подсказывает, что это не гибкое решение. Однако, спасибо!
Старый 31.08.2006, 15:38   #12  
poul is offline
poul
Участник
 
16 / 11 (1) +
Регистрация: 11.08.2006
Цитата:
Сообщение от tricky
2-й вариант не годится, т.к. именно так я поступаю.
странно у меня добуквенно такой вариант работает
 


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

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

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