CRecordSet.Open(CRecordset::dynamic   ,"你的SQL语句");就行了
关键是写好SQL语句。

解决方案 »

  1.   

    用Open()只能返回预绑定的结果集,不能返回其中的一个统计值,比如不能写:
    CRecordSet.Open("select count(*) from tab1");
    我希望能得到其中的统计值,而不是结果集
      

  2.   

    我会3种方法:
    1用GetRecordCount:
    不过,我在做数据库程序时发现有下述情况:
    VC的ODBC的类CRecordSet的函数GetRecordCount()无法得到具体的记录数,而DAO的CDaoRecordSet的函数GetRecordCount()可以得到具体的记录数,所以建议用DAO
    2调用带返回值得sql语句
    3创建记录集后用while来循环遍历记录集,然后设个计数器,不过这方法很苯的。实际上对于ACCESS数据库最好用DAO
      

  3.   

    使用SQL语句完成这个功能,
    CRecordset rst(&db);
    rst.Open("SELECT Sum(money) from 表名");
    long n = atoi(rst.GetFieldValue(0));
    rst.Close();
    采用类似的这种方法.
      

  4.   

    至于要得到该记录集的值,用GetFieldValue
      

  5.   

    hgw111:请我调用带返回值的sql语句,怎么得到返回值呀,不可能写成:select count(*) into :m_count from tab1;zzh:我试一下,如果管用就拜师!
      

  6.   

    rst.Open("SELECT Sum(money) from 表名");
    zzh的说法可行的,关键就是在Open语句上。
      

  7.   

    上面的方法我试过以后不行,我的代码如下:
    CString strSQL=CString("SELECT MAX(col1) FROM tab1");
    CRecordset rst(&db);
    rst.Open(CRecordset::snapshot,strSQL);
    CString str;
    short index = 0; 
    rst.GetFieldValue(index,str);
    rst.Close();
    运行时错误提示:在调用SQLFetchScroll/SQLExtendedFetch之前没有绑定数据列
    我只是举个例子返回Max(col1),如何返回一个特定的统计值呢,不用存储过程,在结果集中得到?请高手帮忙
      

  8.   

    此问题已经解决,谢谢各位,主要是打开Database时,应将Open()的bUseCursorLib设为false即可。