如何在Visual C++中用ADO,对SQL数据库某一列中相同的数据进行个数统计?
CStringstr;str.Format("%d",i);_bstr_tvSQL;vSQL="SELECTcount(*)FROM表WHERE列='"+str+"'";...
CString str;
str.Format("%d",i);
_bstr_t vSQL;
vSQL = "SELECT count(*) FROM 表 WHERE 列=' " + str + " ' ";
这样的语句,但是不知道怎么把count的值 表示出来 ~ 展开
str.Format("%d",i);
_bstr_t vSQL;
vSQL = "SELECT count(*) FROM 表 WHERE 列=' " + str + " ' ";
这样的语句,但是不知道怎么把count的值 表示出来 ~ 展开
1个回答
展开全部
先定义recordset
_RecordsetPtr m_pRecordset;
然后从conn中取得recordset,注意您的SQL中要增加AS NUM,表示将count(*)作为一个变量NUM输出
vSQL = "SELECT count(*) AS NUM FROM 表 WHERE 列=' " + str + " ' ";
m_pRecordset = m_ADOConn.GetRecordSet(vSQL);
然后
_bstr_t num = (_bstr_t)m_pRecordset->GetCollect((long)0)
num 就是您要的个数。
_RecordsetPtr m_pRecordset;
然后从conn中取得recordset,注意您的SQL中要增加AS NUM,表示将count(*)作为一个变量NUM输出
vSQL = "SELECT count(*) AS NUM FROM 表 WHERE 列=' " + str + " ' ";
m_pRecordset = m_ADOConn.GetRecordSet(vSQL);
然后
_bstr_t num = (_bstr_t)m_pRecordset->GetCollect((long)0)
num 就是您要的个数。
追答
num是wstr类型而非str类型,因此m_str是个空值,m_wstr中就是您要的值。
空值是无法在运行时获取到数据的,因此调试器会显示这个错误。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询