大约有3500条数据,为建立一个树结构而使用递归函数,函数中有select 语句,但在函数结尾已经关闭SQL连接,不知为什么速度特别慢,大约30秒才能完成。大概代码如下:
void CTreeDataDlg::TreeAddSubTree(CString ParTree, CString strChildTree, HTREEITEM hPartItem)
{if (strChildTree!="0")
{ _RecordsetPtr m_pTreeRecordset;    //用于创建一个查询记录集
_variant_t vChild; HTREEITEM hCurrent; CString strSQL,strCurItem; strSQL="SELECT * FROM code where ParentItem = '" ;
strSQL=strSQL+ParTree+"'";
try
{
HRESULT hTRes;
    hTRes = m_pTreeRecordset.CreateInstance(_T("ADODB.Recordset"));
if (SUCCEEDED(hTRes))
{
            //----------------------------------------------------
        hTRes = m_pTreeRecordset->Open(.....);
            if(SUCCEEDED(hTRes))
        {
TRACE(_T("连接成功!\n"));
//------------------------------------------
m_pTreeRecordset->MoveFirst();
if (!(m_pTreeRecordset->adoEOF))
{

while(!m_pTreeRecordset->adoEOF)
{
hCurrent = m_ctrlTree.InsertItem(...); if (TreeSumRecordCount(VariantToCString\
(m_pTreeRecordset->GetCollect("Name")))>0)
{
TreeAddSubTree(VariantToCString(m_pTreeRecordset->GetCollect("Name")),
(VariantToCString(m_pTreeRecordset->GetCollect("Name"))),
hCurrent);
}

if (!(m_pTreeRecordset->adoEOF))
{
m_pTreeRecordset->MoveNext();
}
}
}
//---------------------------------------
}
}
m_pTreeRecordset->Close();
m_pTreeRecordset.Release();
}
catch(_com_error e)///捕捉异常
{
 MessageBox("创建省市记录集失败!");
}
}
}