to molight:你没有明白我的意思,在ODBC中RFX只能映射CTime,不能映射OleDateTime to personel:我就是用的GetLocalTm(NULL),结果返回的指针是空,后面就出错了。 问题是CTime::GetYear()在内部调用的也是GetLocalTime(NULL),所以一用GetYear就报错,可是没有这个函数还不行!
怎么会呢,我试了试这段msdn的程序,没有问题 // example for CTime::GetLocalTm CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 struct tm* osTime; // A pointer to a structure containing time // elements. osTime = t.GetLocalTm( NULL ); ASSERT( osTime->tm_mon == 2 ); // Note zero-based month!
利用GetLocalTm,要先建一个CTime对象
CTime b(...);
b.GetLocalTm(NULL);
祥见MSDN.
to personel:我就是用的GetLocalTm(NULL),结果返回的指针是空,后面就出错了。
问题是CTime::GetYear()在内部调用的也是GetLocalTime(NULL),所以一用GetYear就报错,可是没有这个函数还不行!
// example for CTime::GetLocalTm
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
struct tm* osTime; // A pointer to a structure containing time
// elements.
osTime = t.GetLocalTm( NULL );
ASSERT( osTime->tm_mon == 2 ); // Note zero-based month!
我的代码看了半天也没有发现自己错在那里,请大家帮我查一查?
try
{
pSet->AddNew();
pSet->m_nIntField = rand();
pSet->m_strTextField.Format("Test %d", rand());
pSet->m_TimeField = CTime::GetCurrentTime();
pSet->Update(); // 到这里报Access Violation,用Call Stack找到出错的地方是CTime::GetYear
}
catch(CDBException* e)
{
e->ReportError();
e->Delete();
}
如果你用的是VC6的话。
我就一直这样做。。:-*