首页 / 浏览问题 / 组件GIS / 问题详情
iobjectsjava11i pggis多模式下表插入不了数据
23EXP 2023年06月27日
iobjectsjava11i 连接pggis数据源,数据库中存在public和js163两个模式,其中分别存在同名表和同名序列,js163中的表存了public同名表中的部分数据。对非public下的点表插入数据时,添加第一个点对象时会生成gid为0的记录,添加第二个时Recordset.update()失败,再对Recordset进行操作jvm就会崩溃。

在idesktopx11i 中进行同样的操作,也插不进数据,查看日志发现:

错误:  未实现跨数据库关联: "js163.js163.js_line_gid_seq"
LINE 1: select nextval('js163.js163.js_line_gid_seq')

应该是未获取到表对应的序列的问题,api对非public模式下的表读取序列为什么会拼接两个模式名呢,这个问题怎么解决

1个回答

您好,那边尝试下用桌面新建一个pg数据源再进行插入数据操作是否正常呢
3,420EXP 2023年06月27日
如果创建数据源使用默认的public模式,操作是正常的
或者说api是怎么找到非public的序列的?

我直接在public模式下创建名为js163_js_line_gid_seq (模式名_表名_gid_seq),然后关联到js163模式的js_line表的主键上,但是这样做 api查找的是js163.js163_js_line_gid_seq,api内部在找到序列名后又自己拼了模式上去,是否有点多此一举
目前只支持写入public模式的哈,如果想要写到其他非主的模式里面,应该设置目标模式为主模式再进行写入操作
...