QueryRun.reset()

本文介绍了一个关于QueryRun.reset()方法使用的示例,该方法用于将查询游标重置到数据集的第一条记录。通过一个具体的代码示例展示了如何在遍历数据集时使用此方法,特别适用于那些需要多次从头开始遍历同一数据集的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

在使用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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值