读书人

求解~代码很简单的不会耗费你们多少

发布时间: 2012-01-11 22:28:46 作者: rapoo

求解~代码很简单的,不会耗费你们多少时间的!谢谢
_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、代码改成:

C/C++ code
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){} 

读书人网 >VC/MFC

热点推荐