access中的时间类型。 用CRecordset 影射进来是CTime类型。
但是我addnew以后,update,编译没有问题,运行时出错,停在:
==========
_AFX_INLINE int CTime::GetYear() const
{ return (GetLocalTm(NULL)->tm_year) + 1900; }
======================谁碰到过类似的问题? 
怪了

解决方案 »

  1.   

    _AFX_INLINE int CTime::GetYear() const
    { return (GetLocalTm(NULL)->tm_year) + 1900; }
    这是你写的代码吗?
      

  2.   

    变量没有初始化,这种情况只出现在数据表中没有数据时新增数据才会出现。
    在CRecordset的派生类的构造函数中把所有的CTime变量置0初始化.如:
    CTime m_inputtime;
    b093::b093(CDatabase* pdb)
    : CRecordset(pdb)
    {
    //{{AFX_FIELD_INIT(b093)
    m_relationid = _T("");
    m_inputtime = 0;
    }
      

  3.   

    update之前,不修改他是没问题。
    但是,如果:
    m_add.m_APPOINTMENTDATE=CTime::GetCurrentTime();
    m_add.Update();这就出错了。怎么办?
      

  4.   

    好了。
    m_relationid = _T("");
    m_inputtime = 0;
    应该写在 //{{AFX_FIELD_INIT(b093)
    的外面,我写在里面了。谢谢大家!