执行sql语句“select count(id) from xx”得到的记录条数如何获得。

解决方案 »

  1.   

    CDatabase cdb;
    cdb.OpenEx(_T("DSN=xxxxx;UID=1111;PWD=1111"));
    CRecordset crs( & cdb );
    crs.Open( CRecordset::forwardOnly, _T( "Select count(*) from xx" )); if( !crs.IsEOF( ) )
    {
    CDBVariant varValue;
    crs.GetFieldValue( (short) 0, varValue, SQL_C_SLONG );
    // do something with varValue
    } crs.Close( );
    cdb.Close( );
      

  2.   

    crs.itemcount返回的就是记录数啊
      

  3.   

    long ll;
    if( !crs.IsEOF( ) )
    {
    CDBVariant varValue;
    crs.GetFieldValue( (short) 0, varValue, SQL_C_SLONG );
    ll = varValue.m_lVal; //AfxMessageBox(_T("")+varValue);
    // do something with varValue
    }CDBVariant 是个类似 union 得咚咚。因为是 Select count(*) from xx ,
    所以 crs.itemcount / crs.GetRecordCount(); 
    只会是 1select *
    传值的时候开销太大不好意思 我也刚弄懂不久
    大家一起学习
      

  4.   

    faint,这也不对,即使select*,GetRecordCount也不是记录跳鼠,而是1,这个问题讨论过很多次了,建议精华区搜索一下
      

  5.   

    _variant_t vCount;
    m_pRsSQLServer=m_pConSQLServer->Execute(_bstr_t("select count(*) from table where *='*'"),&RecordsAffected,adCmdText);
    vCount=m_pRsSQLServer->GetCollect(vIndex);
    i=vCount.iVal;