m_pPayInfoSet=new CPayInfoSet();
m_pPayInfoSet->Open(AFX_DB_USE_DEFAULT_TYPE,"Select count(*) from [PayInfo]");
CPayInfoSet派生于CRecordSet,里面只有一张表PayInfo.而我用*代替 count(*)就执行正确,我用的SQL Server.高手来帮忙,执行正确就给分

解决方案 »

  1.   

    我把第一个参数改为CRecordset::forwardOnly现在可以统计出行数了,这是为什么????用默认的即snapshot就不行......................
    但我觉得不应该由m_pPayInfoSet->Open()来统计,因为它把得到的统计数据放在这个类的字段里,我的这个类的第三个字段是时间类型,所以我用这个
    int fOK=m_pPayInfoSet->Open(CRecordset::forwardOnly,
    "select sum(rmb) as aa,(select sum(rmb) from payinfo where payinfo.paytype=0) as dd,(select sum(rmb) from payinfo where payinfo.paytype=1) as cc from payinfo");就报告违反限制数据类型属性?有什么好的办法吗?谢谢啦.
      

  2.   

    包含统计字段的查询是不是只能用CRecordset::forwardOnly,来打开啊?谢谢啦
      

  3.   

    CRecordset rs(&g_MJDatabase);
    strSQL.Format("select employeeid as EMPLOYEE ,cardtypeid as CARDTYPE,cardstatusid as CARDSTATUS from ccard where factoryfixid=%ld",lSerID);
    try
    {
    rs.Open(CRecordset::forwardOnly,strSQL);
    if(!rs.IsEOF())
    {
    rs.GetFieldValue("EMPLOYEE",strEmp);
    rs.GetFieldValue("CARDTYPE",strType);
    rs.GetFieldValue("CARDSTATUS",strStatus);
    rs.Close();
    }
      

  4.   

    什么情况下只能用CRecordset::forwardOnly来打开?