首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

哪位看下是哪里出了有关问题呀

2012-03-06 
哪位看下是哪里出了问题呀?voidCCTreeListTestDlg::InitList(){m_hTreem_WndTree.GetSelectedItem()//m_

哪位看下是哪里出了问题呀?
void   CCTreeListTestDlg::InitList()
{
m_hTree   =   m_WndTree.GetSelectedItem();//m_WndTree为CTreeCtr
m_WndList.DeleteAllItems();//_WndList为CListCtr
CListCtrl*   pCtrl   =   (CListCtrl*)GetDlgItem(IDC_LIST1);
ASSERT(pCtrl   !=   NULL);

CString   str_ItemData;
int   ItemData;
if(m_hTree   ==   NULL)
ItemData   =   493;
else
ItemData   =   m_WndTree.GetItemData(m_hTree);
str_ItemData.Format(_T( "%d "),ItemData);

try
{
m_pRecordset.CreateInstance(__uuidof(Recordset));
}
catch(_com_error   *e)
{
AfxMessageBox(e-> ErrorMessage());
}
try
{
CString   strSQL;
strSQL=CString( "select   TABLE_ID,NODE_NAME   from   TR_ENTERPRISE   where   PARENT_ID   =   ")+str_ItemData;
BSTR   bstrSQL   =   NULL;
bstrSQL   =   strSQL.AllocSysString();
m_pRecordset-> Open(bstrSQL,     //   m_AdoConn.m_pConnection.GetInterfacePtr(),adOpenDynamic,
adLockOptimistic,
adCmdText);

if(!m_pRecordset-> BOF)
m_pRecordset-> MoveFirst();
else
{
AfxMessageBox(_T( "表内数据为空 "));

}

CString   str_ReadFromDB;
int   index;
int   i   =   0;
_variant_t   var;
//   读入库中各字段并加入列表框中
while(!m_pRecordset-> adoEOF)
{
var   =   m_pRecordset-> GetCollect( "TABLE_ID ");
if(var.vt   !=   VT_NULL)
index   =   var.iVal;
var   =   m_pRecordset-> GetCollect( "NODE_NAME ");
if(var.vt   !=   VT_NULL)
str_ReadFromDB   =   (LPCSTR)_bstr_t(var);

str_ReadFromDB.TrimRight(_T( "   "));   //   除去空格
if(str_ReadFromDB!=_T( " "))
{
pCtrl-> InsertItem(i,   str_ReadFromDB);
pCtrl-> SetItemData(i,   index);
i++;
}

m_pRecordset-> MoveNext();
}
SysFreeString(bstrSQL);

}
catch(_com_error   *e)
{
AfxMessageBox(e-> ErrorMessage());
}
m_pRecordset-> Close();
m_pRecordset   =   NULL;
       
          UpdateData(FALSE);
}


void   CCTreeListTestDlg::OnSelchangedTree1(NMHDR*   pNMHDR,   LRESULT*   pResult)  
{
NM_TREEVIEW*   pNMTreeView   =   (NM_TREEVIEW*)pNMHDR;
//   TODO:   Add   your   control   notification   handler   code   here
     
this-> InitTree();
                  m_WndList.SetSelectionMark(0);
*pResult   =   0;
}


这只是部分代码,就是一个Tree   control   和一个   list   control     当点击树控件中的一项时候,列表控件从数据库中读取数据写入,在OnSelchangedTree1中响应函数中调用InitTree()时,总是出现runtime   error   ,   但是在CCTreeListTestDlg.cpp   中的其他地方调用时,就没有问题,哪位大哥帮帮忙,帮忙解决一下

[解决办法]
catch(_com_error *e)
应该是catch(_com_error &e)

m_pRecordset-> Close();
也要放catch里去……
[解决办法]
另外,InitTree()的代码在哪里;
------解决方案--------------------


数据还没准备好

热点排行