用odbc访问access2000数据库,数据库中有一data的表,表中有一字段datetime为日期/时间型,格式为常规日期,我生成了此表一个记录集,m_pOdbcDataset,我查看了COdbcDataset类,其中m_datetime变量为CTime类.对应于表中的datetime字段.
;
当我添加新记录时,代码如下:
m_pOdbcDataset->AddNew();
m_pOdbcDataset->m_datetime=CTime::GetCurrentTime();
m_pOdbcDataset->Update();
为什么执行到Update()语句时就出错?我跟踪调试,程序停止于下面的语句:
_AFX_INLINE int CTime::GetYear() const
{ return (GetLocalTm(NULL)->tm_year) + 1900; }
请问这是怎么回事?在线等待,急

解决方案 »

  1.   

    1: 你首先要确保所有不能为空的Field都赋了值,如果有不能为空的Filed你让他为NULL,当然会出错。2:你应该在为记录集生成的类的构造Function 中
    CMyTable::CMyTable(CDatabase* pdb)
    : CRecordset(pdb)
    {}
    手动加上一句:m_datetime = NULL;因为其它的字段VC才都会生成默认值,而DateTime的不会自动生成默认值。