//名称:OnInitADOConn //功能:初始化COM环境 / void ADO::OnInitADOConn() { ::CoInitialize(NULL); try { m_pConnection.CreateInstance("ADODB.Connection"); _bstr_t strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=score.mdb;"; m_pConnection->Open(strConnect,"","",adModeUnknown); } catch(_com_error e) { AfxMessageBox(e.Description()); } } //名称:OpenRecordset //功能:打开记录集 / _RecordsetPtr& ADO::OpenRecordset(CString sql) { ASSERT(!sql.IsEmpty()); try { m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->Open(_bstr_t(sql),m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText); } catch(_com_error e) { AfxMessageBox(e.Description()); } return m_pRecordset; } //名称:CloseRecordset //功能:关闭记录集 / void ADO::CloseRecordset() { if(m_pRecordset->GetState() == adStateOpen) { m_pRecordset->Close(); } } //名称:CloseConn //功能:断开数据库连接 / void ADO::CloseConn() { m_pConnection->Close(); ::CoUninitialize(); } //名称:GetRecordsetCount //功能:取得记录集数目 / UINT ADO::GetRecordsetCount(_RecordsetPtr pRecordset) { int nCount = 0; try { pRecordset->MoveFirst(); } catch(...) { return 0; } if(pRecordset->adoEOF) { return 0; } while(!pRecordset->adoEOF) { pRecordset->MoveNext(); nCount = nCount + 1; } pRecordset->MoveFirst(); return nCount; }