首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

recordset异常

2012-01-15 
recordset错误void CPropInput::OnButtonInput(){// TODO: Add your control notification handler code h

recordset错误
void CPropInput::OnButtonInput() 
{
// TODO: Add your control notification handler code here
_ConnectionPtr pCon;
_RecordsetPtr pRs;


pCon.CreateInstance(__uuidof(Connection));
pRs.CreateInstance(__uuidof(Recordset));
try
{
pCon->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=myaccess.mdb","","",adModeUnknown);
}catch(_com_error *e)
{
CString error=e->ErrorMessage();
error.Format("连接失败%s",error);
//AfxMessageBox("连接失败");
}

_variant_t RecordsAffected;
_bstr_t sql="select * from room";
_bstr_t s="insert into room(roomno,bedno,price,tel,bathroom) values(2222,2,2222,'2222',true)";


//pRs=pCon->Execute(sql,&RecordsAffected,adCmdText);





/*try
{
pRs=pCon->Execute(s,&RecordsAffected,adCmdText);
}catch (_com_error *a)
{
CString err=a->ErrorMessage();
err.Format("错误:%s",err);
AfxMessageBox(err);
}
*/


pRs->Close();
pCon->Close();

pRs.Release();
pCon.Release();

pRs=NULL;
pCon=NULL;
/**/
}




执行sql没问题,但执行s(能执行成功)程序崩溃。

[解决办法]
单看代码看不出有什么不对,看看是不是数据库中的字段类型和你要insert的不一致,还有添加的时候最好数据表中也要现有一条记录,数据表为空的时候就很容易出错。
[解决办法]
我也遇到类似的情况,用recordset打开过一个记录集后,用另外一个SQL语句再打开就出问题了,在第一个用完之前也使用了close,不知道怎么办。

热点排行