QueryRun.reset()

很简单的东东,放在这里以便以后翻看。

 

在使用queryRun.next()遍历queryRun中query所过滤出来的数据集时,使用queryRun.reset()会将记录指针重新放到第一条记录上,也即返回到第一条记录上。

如:

表DavQueryRunReset包含记录:


 

Field1

1

2

3

4

5

6

7


执行如下代码:

Query query;
    QueryRun qr;
    QueryBuildDataSource qbds;
    QueryBuildRange qbr;
    DavQueryRunReset dqrr;
    int i = 0;
    ;
    query = new Query();
    qbds = query.addDataSource(tablenum(DavQueryRunReset),'DavQueryRunReset');
    qbr = qbds.addRange(fieldnum(DavQueryRunReset,Field1));
    qbds.addRange(fieldnum(DavQueryRunReset,Field1)).value('1');
    qbds.addRange(fieldnum(DavQueryRunReset,Field1)).value('2');
    qbds.addRange(fieldnum(DavQueryRunReset,Field1)).value('3');
    qbds.addRange(fieldnum(DavQueryRunReset,Field1)).value('4');
    qbds.addRange(fieldnum(DavQueryRunReset,Field1)).value('5');
    qbds.addRange(fieldnum(DavQueryRunReset,Field1)).value('6');
    
    qr = new QueryRun(query);
    qr.init();
    //if(qr.prompt())
    {
        while(qr.next())
        {
            dqrr = qr.get(tablenum(DavQueryRunReset));
            i++;
            if(i>3)//如果这里不跳出,则完整的会打印出1,2,3,4,5,6
                break;
            print dqrr.Field1;//本部分最终输出结果为:1,2,3
        }
    }
    qr.reset();
    while(qr.next())
        {
            dqrr = qr.get(tablenum(DavQueryRunReset));
            print dqrr.Field1;//本部分输出结果为:1,2,3,4,5,6
        }
    pause;


 

最终输出结果为:

1

2

3

1

2

3

4

5

6

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值