记录集添加字段失败

0 投票
105 浏览

使用产品: iMobile 8c SP2 for android 

数据类型: 文件型 udb

问题:使用代码给记录集添加 字段 添加字段后 fieldInfos里确实有了字段,但是继续给这个字段设置value就会出现 异常:字段不存在

在添加字段后 遍历 fieldInfos 新添加的字段确实是存在的

下面是代码

 FieldInfos fieldInfos = query.getFieldInfos();
                    String mapFieldName = "sl";
                    boolean exists = fieldInfos.indexOf(mapFieldName)!=-1;
                    log("MatchSpecialRangTask", "fieldCount:"+fieldInfos.getCount());
                    if (!exists){
                        FieldInfo fieldInfo = new FieldInfo();
                        fieldInfo.setName(mapFieldName);
                        fieldInfo.setDefaultValue("-1");
                        fieldInfo.setRequired(false);
                        fieldInfo.setType(FieldType.DOUBLE);
                        int add = fieldInfos.add(fieldInfo);
                        log("MatchSpecialRangTask", "addIndex->"+add);
                        query.update();

                    }
                    int count = fieldInfos.getCount();
                    log("MatchSpecialRangTask", "fieldCount:"+count);
                    for (int i=0;i<count;i++){
                        log("MatchSpecialRangTask", "fieldName:"+fieldInfos.get(i).getName());
                    }
                    boolean b = query.setFieldValue(mapFieldName, "90");
                    
                    log("MatchSpecialRangTask", "update:" + query.update());
                    query.close();
                    query.dispose();

最新提问 1月 29 分类:  105次浏览 | 用户: mxc 初出茅庐 (55 分)

1个回答

0 投票
 
已采纳
你好,功能的实现思路是:

1)获取矢量数据集的记录集,通过记录集得到字段集合FieldInfos;

2)往字段集合中添加一个字段FieldInfo,并刷新记录集;

3)最后通过记录集添加字段值,并刷新记录集;

你的这个报错可能是字段添加没有失败,代码中判定字段新增成功的方法是错误的,添加完后应该重新从数据集中的记录集中获取字段集合,然后统计字段集合中的字段个数。
最新回答 1月 29 用户: 王国新 名扬四海 (1,680 分)
采纳于 1月 29 用户:mxc
你好,感谢回答。刷新记录集是指调用 recordset.update()吗,还是说 重新获取一遍RecordSet,例如 从数据集中重新 查询一遍。

判断字段是否新增成功是怎么判断的呢?

是不是可以通过 FieldInfos.indexOf("") 来判断
刷新记录集是用 recordset.update(),获取FieldInfos统计它的字段集合个数就可以,比较添加后是否增加一个字段。
...