求解~代码很简单的,不会耗费你们多少时间的!谢谢
_com_error::`scalar deleting destructor':这个错误是什么意思!代码如下:
_ConnectionPtr pConn1(__uuidof(Connection));//产生connection智能指针
_RecordsetPtr pRst1(__uuidof(Recordset));//产生recordset智能指针
pConn1->ConnectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=图书管理系统";
pConn1->Open("","","",adConnectUnspecified);//打开数据库
char exstr[256];
sprintf(exstr, "select rname from 读者信息 where rno=%d", m_rno);
pRst1=pConn1->Execute(exstr,NULL,adCmdText);
if(!pRst1->rsEOF )
(GetDlgItem(IDC_EDIT2))->SetWindowText(
(_bstr_t)pRst1->GetCollect("rname"));
pRst1->Close();
pConn1->Close();
pRst1.Release();
pConn1.Release();
CoUninitialize();
UpdateData();
[解决办法]
析构时出错
[解决办法]
按下面步骤改进:
1、连接字符串改成:
Provider=SQLOLEDB;Server=(local);Database=图书管理系统; uid=sa;Password=;")
2、代码改成:
HRESULT hr;try{ _ConnectionPtr pConn1;//产生connection智能指针 _RecordsetPtr pRst1;//产生recordset智能指针 hr = pConn1.CreateInstance(__uuidof(Connection)); hr = pRst1.CreateInstance(__uuidof(Recordset)); _bstr_t connStr=_T("Provider=SQLOLEDB;Server=(local);Database=图书管理系统; uid=sa; Password=;"); pConn1->Open((BSTR)connStr, L"", L"", adCmdUnspecified);//打开数据库 CString sql; sql.Format("select rname from 读者信息 where rno=%d", m_rno); hr=m_rec->Open((LPCTSTR)sql, (IDispatch*)adoConn, adOpenUnspecified, adLockUnspecified, adCmdUnspecified); if(!pRst1->rsEOF ) (GetDlgItem(IDC_EDIT2))->SetWindowText((_bstr_t)pRst1->GetCollect("rname")); pRst1->Close(); pConn1->Close(); CoUninitialize(); UpdateData();}catch(_com_error e){}