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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.11.2007, 13:52   #1  
lolalevova is offline
lolalevova
Участник
 
2 / 10 (1) +
Регистрация: 27.02.2007
работа с ComVariant или как считать DateTime из MySQL ??
Здравствуйте!
Не подскажете, как считать поле типа DateTime из MySQL? Подключение через ODBC.

Считываю в переменную типа Int.
Потом через ComVariant пытаюсь вытащаить оттуда дату и время:

X++:
ComVariant      com = new ComVariant(ComVariantInOut::In_out, ComVariantType::VT_DATE);
int                      dateAll = 841495444;        // 22.10.2007 18:08:49
;
com.Long(dateall);
info(strfmt("Время получилось такое: %1 %2 %3", com.date(), time2str(com.time(), 1, 3), com.long()));
В результате получается ерунда.
При этом, обратное работает верно:

X++:
ComVariant      com = new ComVariant(ComVariantInOut::In_out, ComVariantType::VT_DATE);
;
com.date(22\10\2007);
com.time(65329);    // 18:08:49
info(strfmt("Изначально было так: %1 %2 %3", com.date(), time2str(com.time(), 1, 3), com.long()));
Где тут ошибка? - как правильно работать с ComVariant?
А есть еще какой-нибудь способ считать DateTime?
Старый 02.11.2007, 14:05   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
714 / 198 (8) ++++++
Регистрация: 21.10.2004
По-моему datetime - это double, где целая часть это дата, а дробная время. Поэтому его надо доставать, как com.double().
Время когда-то я доставал так:
X++:
int time = frac(datatime)*86400;
где time - аксаптовское время. Как достать дату не помню, но думаю Яндекс об этом знает.
Старый 02.11.2007, 15:24   #3  
lolalevova is offline
lolalevova
Участник
 
2 / 10 (1) +
Регистрация: 27.02.2007
точно! просто Double ))
Спасибо большое! - все работает:

X++:
ComVariant      com = new ComVariant(ComVariantInOut::In_out, ComVariantType::VT_DATE);
real                   dateAll = 39377.7552199074; // 22.10.07 18:0731
;
com.double(dateall);
info(strfmt("Время получилось такое: %1 %2 %3", com.date(), time2str(com.time(), 1, 3), com.long()));
Теги
mysql

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Fred Shen: Convert Axapta date type value to datetime type value in SQL Server Blog bot DAX Blogs 0 28.10.2006 16:40
Совместная работа заказчика и исполнителя в разных или одном слое? Кузин Владимир В. DAX: Программирование 6 08.08.2006 10:02
Доступ к MySQL базе из Аксапты Falcon DAX: Программирование 2 04.05.2006 19:26
COM и работа с шаблонами Excel skvach DAX: Программирование 6 04.12.2003 16:58
Как вызвать метод на COMVariant? Andronov DAX: Программирование 2 06.08.2003 08:29

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

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

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