一个关于数据库操作后就发生异常的问题!

Jerry_zhen 2003-10-21 10:32:11
void CInter::temp_in(CString path)
{
_RecordsetPtr temp_rec;
_ConnectionPtr m_conn;//ado链接对象(指针)
CString query;

m_conn.CreateInstance(__uuidof(Connection));
m_conn->Open( (_bstr_t) "Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=EFDB.mdb;","","",adModeUnknown);
temp_rec.CreateInstance(_uuidof(Recordset));
query="Insert into TableName(Name) values('Name')";
//下一句可以正确执行且数据也到了库中,但到大括号时,按一下f10就出错,如下
//unhandle exception in voice.exe(KERNEL32.DLL):0XC0000005 Access
//Violation
temp_rec->Open((_bstr_t) query,_variant_t((IDispatch *)m_conn,true), adOpenDynamic,adLockOptimistic,adCmdText);
}

希望各位可以帮帮我啊!!!
...全文
32 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonexl 2003-10-21
  • 打赏
  • 举报
回复
最后应关闭数据库:
temp_rec->Close();
CloudWater 2003-10-21
  • 打赏
  • 举报
回复
我估计是你的字符串转换,释放惹的祸
bulesnow 2003-10-21
  • 打赏
  • 举报
回复
只能帮你up,希望高手帮你解决!祝你好运
Jerry_zhen 2003-10-21
  • 打赏
  • 举报
回复
谁有见过这个问题的,快帮帮我吧!!!
stonexl 2003-10-21
  • 打赏
  • 举报
回复
temp_rec->Open((_bstr_t) query,_variant_t((IDispatch *)m_conn,true), adOpenDynamic,adLockOptimistic,adCmdText);

//具体我记不太清楚,好象是改变打开数据库的方式可以解决这个问题。就是改变第三、四个参数
xsc2001 2003-10-21
  • 打赏
  • 举报
回复
if(FAILED(pConn.CreateInstance("ADODB.Connection")))
{
AfxMessageBox("create error!");
return false;
}
_RecordsetPtr pPtr;
if (FAILED(pPtr.CreateInstance("ADODB.Recordset")))
{
AfxMessageBox("Create Instance failed!");
return FALSE;
}
Jerry_zhen 2003-10-21
  • 打赏
  • 举报
回复
关闭数据库我也试过了,是一样的错误!

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧