感谢fenglin88的文章,现在操作起数据库来就没那么复杂了,有点思路了.可以说现在我掌握的这些东西基本上可以满足我做这个项目的要求了.不过还是要巩固一下才可以,因为有些问题还不是很清楚,如果不巩固的话过几天就忘了.
HRESULT hr; try { hr = m_pConnection.CreateInstance("ADODB.Connection"); if(SUCCEEDED(hr)) { hr = m_pConnection->Open("Data Source = Mytest;UID = sa;PWD = admin;","","",adModeUnknown); } } catch(_com_error e) { CString errormessage; errormessage.Format("连接数据库失败/r/n错误信息:%s",e.ErrorMessage()); AfxMessageBox(errormessage); } _variant_t RecordsAffected; m_pConnection ->Execute("update p set weight = weight +1 ", &RecordsAffected,adCmdText); m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open("SELECT * FROM p",_variant_t((IDispatch *)m_pConnection,true), adOpenStatic,adLockOptimistic,adCmdText); _variant_t vPno,vPname,vColor,vWeight,vCity; while(!m_pRecordset->adoEOF) { vPno = m_pRecordset ->GetCollect("Pno"); vPname = m_pRecordset ->GetCollect("Pname"); vColor = m_pRecordset ->GetCollect("Color"); vWeight = m_pRecordset ->GetCollect("Weight"); vCity = m_pRecordset ->GetCollect("City"); if(vPno.vt != VT_NULL && vPname.vt != VT_NULL && vColor.vt != VT_NULL && vWeight.vt != VT_NULL && vCity.vt != VT_NULL) TRACE("Pno:%s,Pname:%s,Color:%s,Weight:%s,City:%s/r/n", (LPCTSTR)(_bstr_t)vPno, (LPCTSTR)(_bstr_t)vPname, (LPCTSTR)(_bstr_t)vColor, (LPCTSTR)(_bstr_t)vWeight, (LPCTSTR)(_bstr_t)vCity); // MessageBox((LPCTSTR)(_bstr_t)vPno); The data can be connect m_pRecordset ->MoveNext(); }
刚才写的一些东西,比起昨天晚上来说迈出了很大一步.
上面写的是数据库访问,以及元组操作的一些代码.对我来说这基本上就够了,再加深了解一下.