pRst->Open(
_variant_t("select count(*) from table"),
m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText); long lRecordCount = pRst->RecordCount; //结果lRecordCount 是1,符合我的要求,接着if(!pRst->adoEOF){
       对pRst操作
}else{
     //居然进入该分支,也就是说任何Move操作都会异常
}大家帮帮忙,什么意思呀,怎么回事哟?

解决方案 »

  1.   

    pRst->MoveFirst();
     试试。
      

  2.   

    select count(*) from table
    这条语句就会给你返回一条记录那就是表中记录的条数
      

  3.   

    不判断,直接调用pRst->GetCollect("字段名")可以取出东西吗??
      

  4.   

    不行,pRst->GetCollect异常,BOF或者EOF中一个为真.
      

  5.   

    pRst->Open(
    _variant_t("select count(*) from table"),
    m_pConnection.GetInterfacePtr(),
    adOpenDynamic,
    adLockOptimistic,
    adCmdText); 
    ===================================
    select count(*) from table
    改成
    select * from table
      

  6.   

    long lRecordCount = pRst->RecordCount;
    这句话把游标放到末尾
    将这句话赋值放到if()内试试
      

  7.   

    move 都不行的话,楼主不妨看看是不是有其他初始化的地方弄错了?
      

  8.   

    select count(*) as aaa from table然后取之前movefirst把游标类型设成adclient把这些都搞了,再试行不行,再不行就晕了
      

  9.   

    pRst->Open( 
    _variant_t("select count(*) from table"), 
    m_pConnection.GetInterfacePtr(), 
    adOpenDynamic, 
    adLockOptimistic, 
    adCmdText); long lRecordCount = pRst->RecordCount; //这句之后游标会指向EOF
    pRst->MoveFirst(); //重新指向第一条记录
    if(!pRst->adoEOF)

          //对pRst操作 
    }
    else

       //记录尾