加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

MFC sqlserver等操作

发布时间:2020-12-12 13:14:01 所属栏目:MsSql教程 来源:网络整理
导读:////////////////获得字段数 mStrSQL = "SELECT * FROM T_Student"; m_pRecordset-Open(mStrSQL, m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText); hr = m_pRecordset-get_Fields(fields); //得到记录集的字段集和? _variant

////////////////获得字段数

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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读