//名称: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;
}