请输入您要查询的百科知识:

 

词条 CRecordset::Move
释义

CRecordset::Move

virtual void Move( long nRows, WORD wFetchType = SQL_FETCH_RELATIVE );

throw( CDBException, CMemoryException );

参数:

nRows 要向前或向后移动的行数。正值表示向前移动,直至移动到记录集的尾部。负值表示向后移动,直至移动到开始处。

wFetchType 确定Move将要获取的行集。其细节参见说明部分。

说明:

此成员函数用来在记录集中向前或向后移动当前记录指针。如果你给nRows传递一个为0的值,则Move刷新当前记录;Move将终止当前的AddNew或Edit模式,并且将把当前记录的值恢复到调用AddNew或Edit之前的值。

注意:

当在记录集中移动时,不能略过被删除的记录。有关的细节可以参见IsDeleted成员函数。

Move用行集来定位记录集。根据传递给nRows和wFetchType的值,Move检取相应的行集,然后将此行集中的第一个记录作为当前记录。如果你还没有实现成组行检取,则行集的大小总是1。当检取一个行集时,Move直接调用CheckRowsetError成员函数来处理检取中发生的任何错误。

Move与其他的CRecordset成员函数是等同的,这得看你所传递的值。尤其是,数值WFetchType指明了更为直观的成员函数,对于移动当前记录来说,可能更喜欢使用该方法。

下面的表列出了wFetchType可能的取值,Move根据wFectchType和nRows将获取的行集,和其它对应于wFetchType的相当的成员函数。

WfetchType 获取的行集 等效成员函数

SQL_FETCH_RELATIVE 从当前行集的第一行开始的nRows行的行集,(缺省值) 

SQL_FETCH_NEXT 下一个行集;nRows被忽略 MoveNext

SQL_FETCH_PRIOR 前一个行集;nRows被忽略 MovePrev

SQL_FETCH_FIRST 记录集中的第一个行集,nRows被忽略 MoveFirst

SQL_FETCH_LAST 记录集中的最后一个完整的行集;nRows被忽略 MoveLast

SQL_FETCH_ABSOLUTE 如果nRows > 0,行集从记录集的开始处开始nRows行。
如果nRows < 0,则行集从记录集的结尾处开始nRows行。
如果nRows = 0,则返回一个BOF条件 SetAbsolutePosition

SQL_FETCH_BOOKMARK 行集开始于书签值与nRows一致的行 SetBookmark注意:

对于只向前的记录集,Move只在wFetchType的值为SQL_FETCH_NEXT才有效。

警告:

如果记录集没有记录则调用Move将抛出一个异常。要确定记录集是否有记录,可以调用IsBOF和IsEOF。

如果你已经滚动过了记录集的开始或结尾(IsBOF或IsEOF返回非零值),则调用Move函数将有可能抛出一个CDBException。例如,如果IsEOF返回非零值而IsBOF没有返回非零值,则MoveNext将抛出一个异常,而MovePrev就不会抛出异常。

如果你在当前记录被更新或增加时调用Move,则更新的值将丢失,并且不会给出警告。

有关的信息,参见“ODBC SDK程序员参考”中的ODBC API函数SQLExtendedFetch。

示例:

// rs是一个CRecordset或一个CRecordset派生对象。

// 将行集的大小改变为5

rs.SetRowsetSize( 5 );

// 移动到记录集中的第一个记录

rs.MoveFirst( );

// 移动到第六个记录

rs.Move( 5 );

// 用其它相当的方法移动到第六个记录

// rs.Move( 6, SQL_FETCH_ABSOLUTE );

// rs.SetAbsolutePosition( 6 );

// 在这种情况下,第六个记录是下一个行集的第一个记录。

// 所以下面的方法也是相当的。

// rs.Move( 1, SQL_FETCH_NEXT );

// rs.MoveNext( );

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/26 22:24:09