Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

DDX_FieldText и CTime

4.5K
02 мая 2006 года
|_|0|\|
7 / / 18.09.2003
Есть прога SDI (MFC) работающая c ODBC MS ACCESS.
Нужно в поле CEdit поместить поле из базы формата Дата/время (Длинный формат времени), т.е. использовать DDX_FieldText().
НО для ODBC нет поддержки работы этой функции с CTime.
Нельзя так: DDX_FieldText(pFX, IDC_MYTIME, m_pSet->m_MyTime, m_pSet)
Логично использовать CTime::Format() для перевода CTime в строку - но он не пашет
Кое-как работает если:
1) тип CTime заменить на TIMESTAMP_STRUCT
2) переконвертить в строку
CString strConv;
strConv.Format("%u:%u:%u",m_pSet->m_MyTime.hour,
m_pSet->m_MyTime.minute,m_pSet->m_My.second);
3) вывести в editbox
DDX_FieldText(pDX, IDC_MYTIME, strConv, m_pSet);
НО! при попытке перейти к следующей записи (MoveNext()) срабатывает ASSERT и пишет про dbcore.cpp 2029 строка , в самом файле там написано:
// If no field found, m_nFieldFound will still be zero
ASSERT(fx.m_nFieldFound != 0);

Очень надеюсь на помощь. Перерыл кучу форумов, help'ов, msdn спит.
324
02 мая 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by |_|0|\|
Есть прога SDI (MFC) работающая c ODBC MS ACCESS.
Нужно в поле CEdit поместить поле из базы формата Дата/время (Длинный формат времени), т.е. использовать DDX_FieldText().
НО для ODBC нет поддержки работы этой функции с CTime.
Нельзя так: DDX_FieldText(pFX, IDC_MYTIME, m_pSet->m_MyTime, m_pSet)
Логично использовать CTime::Format() для перевода CTime в строку - но он не пашет
Кое-как работает если:
1) тип CTime заменить на TIMESTAMP_STRUCT
2) переконвертить в строку
CString strConv;
strConv.Format("%u:%u:%u",m_pSet->m_MyTime.hour,
m_pSet->m_MyTime.minute,m_pSet->m_My.second);
3) вывести в editbox
DDX_FieldText(pDX, IDC_MYTIME, strConv, m_pSet);
НО! при попытке перейти к следующей записи (MoveNext()) срабатывает ASSERT и пишет про dbcore.cpp 2029 строка , в самом файле там написано:
// If no field found, m_nFieldFound will still be zero
ASSERT(fx.m_nFieldFound != 0);

Очень надеюсь на помощь. Перерыл кучу форумов, help'ов, msdn спит.



RFX_Date(pFX, _T("[Data]"), m_Data);
Поле Data типа datatime.
Для преобразования даты в строку пишу так

 
Код:
m_pSet->m_Data.Format("%d %B %Y")
4.5K
02 мая 2006 года
|_|0|\|
7 / / 18.09.2003
Цитата:
Originally posted by AndreySar
RFX_Date(pFX, _T("[Data]"), m_Data);
Поле Data типа datatime.


-поле Data - const char* имя атрибута таблицы-

Цитата:
Для преобразования даты в строку пишу так
 
Код:
m_pSet->m_Data.Format("%d %B %Y")


-не работает-

Как вариант я щас использую без DDX через CDBVariant

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог