可以连接数据库,但不能操作,咋办?该如何解决
可以连接数据库,但不能操作,咋办?
------解决方案--------------------
你改成pRst=pCmd->Execute("select * from student",NULL,adCmdText);试下
------解决方案--------------------
或者这样
- C/C++ code
CoInitialize(NULL); _ConnectionPtr pConn(__uuidof(Connection)); _RecordsetPtr pRst(__uuidof(Recordset)); _CommandPtr pCmd(__uuidof(Command)); pConn->Open("Data Source=student;UID=;PWD=","","",adModeUnknown); MessageBox(""); pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn)); pCmd->CommandText="select * from student"; pRst=pCmd->Execute(NULL,NULL,adCmdText);//这一句,一直提示异常,无法解决,然后退出了 while(!pRst->rsEOF) { ((CListBox*)GetDlgItem(IDC_LIST1))->AddString( (_bstr_t)pRst->GetCollect("au_lname"));//把内容读取到ListBox控件中 pRst->MoveNext(); } pRst->Close(); pConn->Close(); pCmd.Release(); pRst.Release(); pConn.Release(); CoUninitialize();
------解决方案--------------------
你改成pRst=pCmd->Execute("select * from student",NULL,adCmdText);试下
------解决方案--------------------
或者这样
- C/C++ code
_CommandPtr m_pCommand; pCmd.CreateInstance("ADODB.Command"); _variant_t vNULL; vNULL.vt = VT_ERROR; vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数 pCmd->ActiveConnection = pConn;///非常关键的一句,将建立的连接赋值给它 pCmd->CommandText = "select * from student";///命令字串 m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);
------解决方案--------------------
你能确定一定连接数据库成功了吗,你单步执行看看pConn这个值是否有效,包括pRst,pCmd
------解决方案--------------------
用try ...catch(_com_error)捕获异常,看看提示是什么。数据库操作,应该添加异常处理。
这里有别人封装好的,调用ado的方法,可以考虑一下
http://www.codeproject.com/Articles/1075/A-set-of-ADO-classes-version-2-20