SUMMARY
The RFX_Date() record field exchange function transfers
data from a date/time field to a CTime object. AppWizard/ClassWizard will use
this RFX_Date() function when mapping date/time fields to variables.
The CTime object doesn't allow dates before the year 1970 and after the year
2037 (the CRT stores the time as a signed long, so the limit is actually Jan
18, 2038 19:14:07). Therefore, it may be better to use a TIMESTAMP_STRUCT
(defined in the SQLEXT.H) to retrieve the date/time information.
The
structure TIMESTAMP_STRUCT is defined as:
typedef struct tagTIMESTAMP_STRUCT
{
SWORD year;
UWORD month;
UWORD day;
UWORD hour;
UWORD minute;
UWORD second;
UDWORD fraction;
} TIMESTAMP_STRUCT;
NOTE: The code in the following sample is not needed if you are using
MFC version 3.1 or above (i.e. VC++ 2.1 or greater). MFC version 3.1 and above
includes an overloaded RFX_Date function that takes a TIMESTAMP_STRUCT. In this
case, simply changing the declaration of the recordset members to
TIMESTAMP_STRUCT and modifying any initializations of those members is
sufficient.
The RFXDTE sample contains two files; RFXDATE.H and
RFXDATE.CPP. These define a RFX_Date() function which accepts a
TIMESTAMP_STRUCT reference. To use the function, you need to include the .CPP
file into your project. If your project doesn't use the standard precompiled
header STDAFX.H then you may need to add header files to the top of the .CPP
file. Either in your precompiled header or the RFXDATE.CPP file, you must
include AFXWIN.H, AFXEXT.H, and AFXDB.H.