设置游标想采用CursorType = adOpenDynamic ,以便使用MoveLast 和 MovePrevious,
但好象只有用Recordset->open(...)语句才能将此参数初始化,但我现在又要使用查询参数param,就不得不使用Command,这样存取查询记录就得采用Recordset=Command->execute的形式,又无法使游标初始化, 请问有没有两全其美的写法,使查询既能使用参数,又能让Recordset使用游标的来回遍历.
不知道表达清楚没有,大家帮忙看看把!

解决方案 »

  1.   

    用commandPtr->execute里定义参数,  并返回recordset
      

  2.   

    问题是不是EXECUTE的三个参数并没有关于有表类型的呀,能不能说得具体一点呀???
      

  3.   

    主要要达到的目的不是要向SQL语句传送参数,主要的目的是要让游标的类型可以表达。当然要用Command的Execute函数。
      

  4.   

    CString S1="SELECT * FROM OPS_REG,D_DOR where D_DOR.D_NAME=OPS_REG.OPR  AND  OPS_REG.REG_ID='"+S1+"' ";
    m_pRecordset->Open((_variant_t)S1,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
    是不是这样啊!我不能理解你问什么?不过你看看是不是你想知道的.
      

  5.   

    但是如果你这样写呢???
    m_pRecordset = pCmd->Execute(NULL,NULL,adCmdText);
    这样的话,你怎么修改数据集的类型呀,已经打开的数据集的CursorType参数是只读的。
      

  6.   

    呵呵,应该是不行的吧?为什么不用command执行你的操作,再用recordset打开呢?2个操作分开做
      

  7.   

    barsteng你可以具体说说好吗,不是很熟悉。
      

  8.   

    对不起,我说错了,我错误的理解了你的意思
    是这样的,我认为你对ADO的要求没法实现,因为你在执行一个带有参数的SQL语句,并且希望能够在MoveNext和MovePrev时,“看到其他人对数据库的修改、删除”(这是adOpenDynamic所定义的),这种要求好像数据库没法支持吧?
    如果你不要求“看到其他人对数据库的修改、删除”,是否可以使用adOpenKeyset?