用CRecordset对象的edit,然后update出现"非法的游标位置,未定义的键集"异常,向各位前辈请教是什么原因?
// 打开数据库(既Excel文件)
if(!database.Open(NULL, FALSE, FALSE, sDsn/*,FALSE*/))
return false;
CSetdata recset(&database);
// 设置读取的查询语句.
sSql.Format("SELECT * FROM 表计信息 WHERE 表类型='%d' AND 表地址='%d' AND 厂商代码1='%d' AND 厂商代码2='%d'"
,MeterTypeID,meter_addr,FactoryCode1,FactoryCode2);
// 执行查询语句
recset.Open(CRecordset::forwardOnly, sSql, CRecordset::none);
if (recset.IsEOF()&&recset.IsBOF())//记录集为空
{
// 关闭数据库
database.Close();
return false;
}
recset.Edit();
recset.m_Amaasflow = amassflow;
//bool i = recset.CanUpdate();
if( !recset.Update() )//这里出现异常
{
AfxMessageBox( "Record not updated; no field values were set." );
return false;
}
recset.Requery();
recset.Close();
// 关闭数据库
database.Close();