4,011
社区成员
发帖
与我相关
我的任务
分享
void CSiDView::OnDblclkList1()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_grid.DeleteAllItems();
CHeaderCtrl* pHeaderCtrl = m_grid.GetHeaderCtrl();
if (pHeaderCtrl != NULL)
{
int nColumnCount = pHeaderCtrl->GetItemCount();
for(int i =0; i < nColumnCount; i++)
m_grid.DeleteColumn(0) ;
}
CString str,sql;
m_list.GetText(m_list.GetCurSel(),str);
sql.Format("select * from %s",str);
pRst.CreateInstance(__uuidof(Recordset));
//pRst->Open((_bstr_t)sql,pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
pRst->Open((_bstr_t)sql,pConn.GetInterfacePtr(), adOpenStatic , adLockReadOnly, adCmdText);
Fields * fields=NULL;
long countl;
BSTR bstr;
pRst->get_Fields((&fields));
countl=fields->Count;
for(long i=0;i<countl;i++)
{
fields->Item[i]->get_Name(&bstr);
m_grid.InsertColumn(i,(CString)bstr,LVCFMT_LEFT,100,0);
}
int k;
_variant_t var;
tagVARIANT varFieldVal;
var.vt = VT_I2;
FieldPtr pField;
while(!pRst->adoEOF)
{
m_grid.InsertItem(0, "");
for(k=0;k<countl;k++)
{
var.iVal = k;
pField = pRst->Fields->GetItem(var);
pField->get_Value(&varFieldVal);
if(varFieldVal.vt != VT_NULL)
m_grid.SetItemText(0,k,(char*)(_bstr_t)varFieldVal);
m_grid.InsertColumn(i,(CString)bstr,LVCFMT_LEFT,100,0);
}
pRst->MoveNext();
}