Показать сообщение отдельно
Старый 06.08.2012, 11:58   #1  
eon is offline
eon
Участник
 
3 / 10 (1) +
Регистрация: 13.07.2011
! Неправильный insert()
Добрый день. Только начинаю программировать в Ax. Столкнулся с проблемой.
Есть метод, вызывается с параметрами.

X++:
void insertInToTestPerfomanceTable(...,
                                   TimeInMS duration,
                                   ...,
                                   date periodFrom,
                                   date periodTo)
{
    ...
    ;

    ...
    testPerfomanceTable.Duration = duration;
    if (duration <= 999)
    {
        testPerfomanceTable.Duration2 = Int2Str(duration) + " мс";
    }
    else if ((duration > 999) && (duration < 59999))
    {
        testPerfomanceTable.Duration2 = Int2Str(duration div 1000) + " с " +
                                        Int2Str(duration mod 1000) + " мс";
    }
    ...
    testPerfomanceTable.PeriodFrom = periodFrom;
    testPerfomanceTable.PeriodTo = periodTo;
    ttsbegin;
        testPerfomanceTable.insert();
    ttscommit;
}
Элементарно вставить запись в таблицу БД.
Проблемы две.
1. testPerfomanceTable.PeriodFrom = periodFrom;
testPerfomanceTable.PeriodTo = periodTo;

В поля кладутся верные даты. Но в БД иногда записывается нулевая дата 1900-01-01. В общем как повезет. 50/50. Через отладчик проверяю, всегда кладется нужная дата, а зписывается не всегда она. Тип полей Date.

2. testPerfomanceTable.Duration2 = ...

В поле кладется верная строка. Но в БД ничего не записывается. Через отладчик проверяю, всё норм. Тип поля String. Size 1024. Хотя это слишком много.

Простите, если что не так объяснил. Помогите, пожалуйста.

AX2009 SQL2008R2