首页 / 浏览问题 / 组件GIS / 问题详情
iobject中的调用moveNext
185EXP 2018年12月25日

最近想实现一个功能,但是Recordset调用movenext()时没有向下移动,请大佬帮分析一下是那里错了,代码如下:

输出的SMID的值始终都是一个数字。

1个回答

你好,你对记录集进行循环了吗?可以这样来写:
recordset.moveFirst();
 while(!recordset.isEOF()) {    

System.out.println();

recordset.moveNext();
                }
9,137EXP 2018年12月25日

我想在while循环中再加一个循环,实现station中一条数据查询出linepoint中对应的符合条件的所有数据,然后返回linepoint中符合条件的数据的smid,但目前是不对的,好像是逻辑错了,一时间没转过来那里出了问题,求解答,谢谢

你是想做关联查询吗?你上面代码输出出来结果不对还是报错了
是的关联查询,一对多的,查询的结果不对,第二层嵌套的没有循环
你的代码里面第二层循环也不正确啊,如果要循环记录集还是用上面的方法来循环
while(!station.isEOF()) {  
             Object biaoji=station.getFieldValue("biaoji");
             String filter = "biaoji like "+biaoji+" " ;
            while(!linepoint.isEOF()){                 
                Recordset line=LINEPOINT.query(filter, CursorType.STATIC);                
                System.out.println(station.getInt32("SMID")+"_"+line.getInt32("SMID")+"+++"+filter);
                linepoint.moveNext();    
            }            
             station.moveNext();
         }

这样写也不对啊   我第二层循环查询的是DatasetVector的数据,但是DatasetVector没没有一次星把所有符合条件的拿出来玩,如果我把第二层改成查询Recordset数据,但是加不了filter的判断条件。
你应该是把查询的方法写在循环外面,然后去循环查询获取的结果recordset。再去输出里面的字段信息。逻辑应该是这样的
问题解决了    循环的对象错了。
...