如何在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的值 表示出来 ~
展开
 我来答
百度网友00e4ec0
2013-03-06 · TA获得超过308个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:146万
展开全部
先定义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 就是您要的个数。
追问

 

谢谢您,运行结果是如图所示,其中 m_str 为错误指针是为什么呢?

追答
num是wstr类型而非str类型,因此m_str是个空值,m_wstr中就是您要的值。
空值是无法在运行时获取到数据的,因此调试器会显示这个错误。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式