起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 2069|回复: 53

【结帖】通过数据集更新的sql语句中,where语句部分主键丢失**

[复制链接]
发表于 2008-6-11 08:23:05 | 显示全部楼层 |阅读模式
数据集更新选项设为主键后,新增记录并保存会报错,且用于更新的sql语句的where语句部分没有任何代码(即update table1 set a=1 where )。所以自然会报错,sql没有正确的结尾。

如果更新选项设置为主键和所修改的字段时,保存报错,“change by another user” 或者“can not update more than 1 record"
回复

使用道具 举报

 楼主| 发表于 2008-6-11 08:25:40 | 显示全部楼层
如何,更有效的得到数据集更新时的updatesql语句呢? 现在只能通过报错后,tomcat的日志来查
这个问题困扰了很长时间了。以前只是以为保存报错“changed by another user”是个简单的问题。后来才发现,更新语句中的主键没有起到任何作用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-11 08:27:33 | 显示全部楼层
只有两个表有这中情况。且新增记录时,会新增编辑人员和编辑时间。且该表中有部分数据的编辑人员和编辑时间是空值,这有影响吗?
找不到真正的问题所在,苦闷中……
回复 支持 反对

使用道具 举报

发表于 2008-6-11 08:38:48 | 显示全部楼层
楼主是导入数据字典建立的数据表吧,好像没设置主键。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-11 08:42:08 | 显示全部楼层
有主键,是通过 X3建的表
回复 支持 反对

使用道具 举报

发表于 2008-6-11 08:53:35 | 显示全部楼层
能否看看数据集的select  的sql是什么样子的?
如果不是标准的select(比如做链接,联合,子查询),有可能语句生成不正常,这样情况下必须手工修改更新选项的sql。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-12 08:33:31 | 显示全部楼层
select 的sql没有问题 : select zd1,zd2,zd3 from table1 where sid='100000000000000000038'

有问题数据的编辑人编码字段的数据,利用plsql修改后,就可以通过x3平台保存了。但是,具体的原理,还是不太明白。
回复 支持 反对

使用道具 举报

发表于 2008-6-12 08:45:37 | 显示全部楼层
plsql如何修改的?
楼主说的一系列问题我联系不到一块。能否仔细描述下问题。
回复 支持 反对

使用道具 举报

发表于 2008-6-12 09:08:14 | 显示全部楼层
"有问题数据的编辑人编码字段的数据,利用plsql修改后,就可以通过x3平台保存了。但是,具体的原理,还是不太明白。"

能否详细描述一下是怎么做的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-13 08:25:00 | 显示全部楼层
"有问题数据的编辑人编码字段的数据,利用plsql修改后,就可以通过x3平台保存了”也不好用。修改后,只是暂时能用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 05:02 , Processed in 0.052329 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表