DDX_FieldText и CTime
Нужно в поле 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 спит.
Цитата:
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 спит.
Есть прога 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")
Цитата:
Originally posted by AndreySar
RFX_Date(pFX, _T("[Data]"), m_Data);
Поле Data типа datatime.
RFX_Date(pFX, _T("[Data]"), m_Data);
Поле Data типа datatime.
-поле Data - const char* имя атрибута таблицы-
Цитата:
Для преобразования даты в строку пишу так
Код:
m_pSet->m_Data.Format("%d %B %Y")
-не работает-
Как вариант я щас использую без DDX через CDBVariant