. In an earlier
article Claude Turner has pointed out that RFX_Date does not handle invalid dates properly. This code
is basically a replacement for RFX_Date that can handle invalid dates but still has the limitation that
it can handle the year upto 2038 only.
In the topic: “Database Programming”-‘look subject of the message’ there
is the remark to do not use CTime (its true), but TIMESTAMP_STRUCT (not
an object) in Access ODBC programming instead.
In my programs I use COleDateTime (prima!), and just the following code
must be supported to handle field exchange:
void RFX_DateTime( CFieldExchange* pFX,
const char* szName, COleDateTime& value )
{
CTime tm = CTime((value.GetYear()<1970 ? 1970 : value.GetYear()),value.GetMonth(),
value.GetDay(),value.GetHour(),
value.GetMinute(),value.GetSecond());
RFX_Date(pFX, szName, tm);
value.SetDateTime(tm.GetYear(),tm.GetMonth(),
tm.GetDay(),tm.GetHour(),
tm.GetMinute(),tm.GetSecond());
// instead of RFX_Date(pFX, szName, value);
}
Of course it does not exceeds date limitations of CTime bottleneck, but
user has COleDateTime object with all its’ functionality for ‘near
future’ (till 2038).