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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2007, 13:46   #1  
PavelSR is offline
PavelSR
Участник
 
98 / 10 (1) +
Регистрация: 25.05.2006
непонятности с полями modifiedTime, modifiedDate др.
Добрый день!

Наткнулся на очень странную ситуацию связанную с системными полями такими как modifiedTime, modifiedDate.
Вот что я увидел:
1. есть таблица в свойствах которых Не установлены modifiedTime , modifiedDate.
2. на форме, использующей эту таблицу, создаю запись. Поля modifiedTime , modifiedDate ПУСТЫЕ.
3. изменяю значение любого поля этой записи. Поля modifiedTime , modifiedDate ЗАПОЛНЕНЫ !!!

Значение полей наблюдаю через Паспорт записи.

Вопрос: Почему с учетом п.1 я вижу заполненые поля modifiedTime , modifiedDate?
Старый 16.03.2007, 14:06   #2  
Kolja is offline
Kolja
Участник
 
14 / 10 (1) +
Регистрация: 23.12.2005
Если свойства не установлены то в БД у таблицы этих полей нет. Но сама аксапта их заполняет скорее всего т.к. у таблицы как объекта аксапты это поле заполняется всегда. Но если перечитать данные из таблицы то поле снова будет пустое.
Старый 16.03.2007, 14:32   #3  
PavelSR is offline
PavelSR
Участник
 
98 / 10 (1) +
Регистрация: 25.05.2006
Очень странное поведение Аксапты в плане заполнения таких полей... частенько вводит в заблуждение.
Старый 16.03.2007, 15:26   #4  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
и если сделать запрос типа
X++:
select accountNum from ledgerTrans 
where ledgerTrans.modifiedDate > str2date( "01012000", 123)
то в базу полетит sql-запрос
X++:
SELECT TOP 1 A.ACCOUNTNUM,A.RECID FROM LEDGERTRANS A 
WHERE ((DATAAREAID=N'dat') 
AND ({ts '1900-01-01 00:00:00.000'}>{ts '2000-01-01 00:00:00.000'}))
который не только ошибку не выдаст (на тему что поля modifiedDate в таблице нет), но и вряд ли вернёт какие-нибудь записи
система создаёт видимость того, что поле modifiedDate есть и заполнено значением datenull()
__________________
Дмитрий
Старый 17.03.2007, 10:28   #5  
Kolja is offline
Kolja
Участник
 
14 / 10 (1) +
Регистрация: 23.12.2005
хм...

я не претендую на всёзнайство и прошу меня простить если что, но смотря таблицы в БД я полей НЕ увидел потому что их нет. Решил проверить.
X++:
static void JobTestModifiedDate(Args _args)
{
    Address address;
    ;
    select name from address where address.modifiedDate > str2date('01012007',123);
    info(address.Name);
}
в файле trcSQL-Admin.log получил результат
Цитата:
Пользователь: Admin
Время: 09:15:28 16.03.2007
Версия: Microsoft Business Solutions-Axapta 3.0 (Номер выпуска 1951.4060)
База данных: Microsoft SQL Server
Предупреждение: Поле "modifiedDate" в таблице "Address используется в выражении where, но не сохраняется в базе данных SQL (то есть нет эффекта). Поле может быть заблокировано конфигурационным ключом. [W-0114]
Стек вызовов:
\Jobs\JobTestModifiedDate - line 5
теперь я думаю всем всё понятно

Последний раз редактировалось Kolja; 17.03.2007 в 13:59.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как в динамическом запросе использовать исловие OR между двумя полями? yooshi DAX: Программирование 12 07.08.2009 16:34
Как получить значения полей (modifiedDate, modifiedTime, modifiedBy и др.) при работе с объектами AOT типа Map? LRA DAX: База знаний и проекты 15 02.04.2007 13:37
как конвертировать поле MODIFIEDDATE? lewisdragon DAX: Функционал 9 07.04.2004 13:14
Изменение полей ModifiedTime etc. lexa DAX: Программирование 2 01.02.2004 22:56
Диалоговое окно с Lookup полями Julietta DAX: Программирование 1 15.12.2003 13:00

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

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

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