关闭Recordset出错

jronald 2005-03-20 09:38:17
if (dlg.DoModal()==IDOK) {
m_pConnection->Open("","","",adConnectUnspecified);
m_pCommand->put_ActiveConnection(_variant_t((IDispatch*)m_pConnection));
m_pCommand->CommandText=(char*)_bstr_t("insert into phonebook (name,phone) values ('"+dlg.m_name+"','"+dlg.m_phone+"')");

m_pRecordset=m_pCommand->Execute(NULL,NULL,adCmdText);



m_pRecordset->Close();  //这儿runtime error
m_pConnection->Close();
}

太奇怪了,上面是add按钮的代码,下面是CDialog::OnInitDialog的代码,没错
m_pCommand->CommandText="select * from phonebook";
m_pRecordset=m_pCommand->Execute(NULL,NULL,adCmdText);

m_pRecordset->MoveFirst();
while (!m_pRecordset->adoEOF) {
CString s;
s=(char*)(_bstr_t(m_pRecordset->GetCollect("name"))+"\t\t"+_bstr_t(m_pRecordset->GetCollect("phone")));
m_phonelist.AddString(s);
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();

...全文
103 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jronald 2005-03-21
  • 打赏
  • 举报
回复
我查了m_pRecordset->State的值
在OnInitDialog时是1
在add按钮过程中是0
应该是insert没有打开记录集的原因
dewdrop 2005-03-20
  • 打赏
  • 举报
回复
if (dlg.DoModal()==IDOK) {
_variant_t vAffectedRows;
m_pConnection->Open("","","",adConnectUnspecified);
m_pConnection->BeginTrans();
m_pConnection->Execute("insert into phonebook (name,phone) values ('"+dlg.m_name+"','"+dlg.m_phone+"')",&vAffectedRows,adExecuteNoRecords);
m_pConnection->CommitTrans();
m_pConnection->Close();
}

用事物吧~~

4,018

社区成员

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

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