////////////////获得字段数
mStrSQL = "SELECT * FROM T_Student"; m_pRecordset->Open(mStrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); hr = m_pRecordset->get_Fields(&fields); //得到记录集的字段集和? _variant_t vIndex = (long)0; _variant_t vCount = m_pRecordset->GetCollect(vIndex); count = vCount.lVal;
if (SUCCEEDED(hr)) fields->get_Count(&ColCount);//得到记录集的字段集合中的字段的总个数ColCount 就是几列 /////把数据库中字段名写进listcontrol for (i = 0; i < ColCount; i++)//i一定要是long型的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! { fields->Item[i]->get_Name(&bstrColName); //得到记录集//中的字段名? strColName = bstrColName; nameField = strColName; //m_listSerialCsvData.SetItemText(count,ColCount,nameField); ? ?//AddString(nameField);m_listSerialCsvData.SetItemText(i,j,wstTmp.c_str()); m_listSerialCsvData.InsertColumn(i,nameField,LVCFMT_LEFT,80);//表头 }
/////获取记录数
mStrSQL2 = "SELECT * FROM T_Student"; /*m_pRecordset->Execute(mStrSQL2, adCmdText);*/////上面已经打开了数据库,这里就只能执行了 不能多次开打 除非在关闭之后! _variant_t RecordsAffected; m_pRecordset = m_pConnection->Execute(mStrSQL2,&RecordsAffected,adCmdText); _variant_t vIndex2 = (long)0; _variant_t vCount2 = m_pRecordset->GetCollect(vIndex2); count2 = vCount2.lVal;
////////////////////////取出数据库数据放到listcontrol中;ColCount是字段数
CString strValue; try { while (!m_pRecordset->adoEOF) { strValue = ""; m_listSerialCsvData.InsertItem(m_listSerialCsvData.GetItemCount(),strValue); for (int i = 0; i < ColCount; i++) { _variant_t var = m_pRecordset->GetCollect(_variant_t((long)i)); if (var.vt != VT_NULL) { strValue = (LPCTSTR)_bstr_t(var); m_listSerialCsvData.SetItemText(m_listSerialCsvData.GetItemCount()-1,i,strValue);
} } m_pRecordset->MoveNext(); }
} catch (_com_error &e) { AfxMessageBox(e.Description()); }
//mStrSQL2 = "SELECT * FROM T_Student"; ///*m_pRecordset->Execute(mStrSQL2, // m_pConnection.GetInterfacePtr(), // adOpenDynamic, // adLockOptimistic, // adCmdText);*/////上面已经打开了数据库,这里就只能执行了 不能多次开打 除非在关闭之后! //_variant_t RecordsAffected; //m_pRecordset = m_pConnection->Execute(mStrSQL2,adCmdText);
//_variant_t vIndex = (long)0; //_variant_t vCount = m_pRecordset->GetCollect(vIndex); //count = vCount.lVal;
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|