我用得是sql server7.0是不是不支持这个属性?

解决方案 »

  1.   

    如果需要得到记录数,你需要对整个记录集滚动一次才能得到。
    如果你觉得该种方法耗时,可以先用( select count(*) from  表名)语句得到记录数,然后在操作
      

  2.   

    打开的记录集时,CursorType使用adOpenKeyset或adOpenStatic,即可通过RecordCount返回记录总数,如果事业adOpenDynamic得到的记录总数为-1;正确的打开记录集的方法如下:
    _RecordsetPtr pRsSelf;
    pRsSelf.CreateInstance(__uuidof(Recordset));
    //pRsSelf->CursorLocation=adUseServer;
    pRsSelf->Open("select * from [selfmade] order by 图号",pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

    _RecordsetPtr pRsProd;
    pRsProd.CreateInstance(__uuidof(Recordset));
    pRsProd->Open("select * from [product] order by 编号",pCon.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText); _RecordsetPtr pRsStd;
    pRsStd.CreateInstance(__uuidof(Recordset));
    pRsStd->Open("select * from [standard]",pCon.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);
    ......
    我使用的是SQL Server7.0做数据库
      

  3.   

    不用像他们说的那么复杂,你所使用的ado可以在recordset里使用recordCount获得记录数,但是要求所使用的不可以是向前游标和动态游标,这两种游标会返回-1。open方法的第3个参数是游标类型,设置为adOpenStatic和adOpenKeyset(或者写1和2)就可以了。也可以先设置游标类型,如rs->cursortype=1
    对于任何支持ole db的数据库都可以。