//Execute("SELECT COUNT(*) as cnt FROM users",&RecordsAffected,adCmdText); 
m_pRecordset->Fields->GetItem(_variant_t("cnt"))->Value

解决方案 »

  1.   

    Recordset.count=0一定表示数据数据集行数为0,但是Recordset.count=1却不表示recordset只有一行记录,
      

  2.   

    你混淆了业务数据为0和记录集为空的概念
    你的记录集无论如何都不会返回空,除非出错
    因为你的记录集包含一个字段,COUNT(*),无论如何都会得到一个结果
    0是你的记录集字段的值,记录集永远是一行
      

  3.   

    Recordset对象有一个RecordCount属性
      

  4.   


    什么情况下 查询数据记录集会返回空?还是永远都不会为空  我说的不是我的那个sql语句
      

  5.   

    我说的空指的是返回的行数为0,没有查到结果就是空的。而count(*)查询的结果要么异常出错要么包含一个结果,结果是查询到的行数,0或者大于0
      

  6.   


    嗯 这个我明白   我说的如果  不是count  这样的存储计算结果的查询  就是普通的  比如 select  * from  task where  num = '1001'  如果 数据库表中并不存在这样的记录    它最后会返回什么
      

  7.   


    嗯 这个我明白   我说的如果  不是count  这样的存储计算结果的查询  就是普通的  比如 select  * from  task where  num = '1001'  如果 数据库表中并不存在这样的记录    它最后会返回什么返回没有结果的记录集,行数为0