无记录的数据库添加第一条记录为何出错?
bibye 2002-03-12 10:04:36 数据库的字段包含CTime类型,在database->Update()时会出:
_AFX_INLINE int CTime::GetYear() const
{ return (GetLocalTm(NULL)->tm_year) + 1900; }
的错误!
但是可以肯定的是,在数据库中至少有一条记录时,操作完全不会出错。
我添加记录的代码如下:
CRecordSet* database;
///////////////////////////
if (!database->IsOpen())
database->Open();
if (database->IsBOF() == 0 )
database->MoveFirst();
database->AddNew();
if (!database->CanAppend())
{
AfxMessageBox("You can't add a new record!");
}
if (database->IsEOF() == 0)
database->MoveLast();
{
//赋值操作
}
try
{
database->Update(); //此处时出错,没有执行到下边语句
}
catch(CDBException* e)
{
AfxMessageBox(e->m_strError);
return ;
}
database->Requery();