起步软件技术论坛-X3

 找回密码
 立即注册
搜索
楼主: yt_zy

【结贴】数据集更新选项**

[复制链接]
 楼主| 发表于 2007-12-4 15:17:18 | 显示全部楼层
解决方法:
1.修改数据集的更新选项的更新模式,有三个选项:所有字段、主键和修改字段、主键。修改这个更新模式为主键,这样只有主键会出现在where部分。
--------------------------------
我是要并发的,这样不行,必须是主键和更新字段
2,我的条件字段中的确有日期型字段存在,但建模工具坏了,还没测试。。但是我的另外一个和这个类似的数据集就没有问题,设置都一样,那个不报错,这个报错
回复 支持 反对

使用道具 举报

发表于 2007-12-4 15:24:03 | 显示全部楼层
楼主既然是联合主键,只保留FID和MATER_COD就可以了。
为什么非加上修改字段??
主键的特点不是唯一性吗?
where语句只是为了找到需要修改的记录行,1楼报错是where语句没有找到符合条件的记录
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-4 15:24:54 | 显示全部楼层
我试过,如果只保留主键,更新不会报错的,但是我要控制并发。。。
回复 支持 反对

使用道具 举报

发表于 2007-12-4 15:33:20 | 显示全部楼层
Where条件部分去掉所有的日期类型字段和浮点数类型字段
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-4 15:36:15 | 显示全部楼层
为甚么我另外一个数据集也是这种设置就不报错?那个的主键是唯一主键
回复 支持 反对

使用道具 举报

发表于 2007-12-4 15:55:49 | 显示全部楼层
跟唯一主键不唯一主键没有关系
在wiki中已经说明了,浮点数、日期等都会造成有精度损失的
错误是因为精度损失而跟其他的没有关系
精度损失,当然跟浮点数的特定数值有关
你的另外一个功能不出错,是因为没有测试到这些特定的数值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-4 16:04:40 | 显示全部楼层
UPDATE MAT_REQ_APPLY_B
SET  CHECK_ID = :CHECK_ID  ,
CHECK_NUM = :CHECK_NUM  ,
CHECK_IDEA = :CHECK_IDEA  ,
CHECK_NAM = :CHECK_NAM  ,
CHECK_TIM = :CHECK_TIM  ,
IS_USED = :IS_USED  ,
UPDATE_MAN = :UPDATE_MAN  ,
UPDATE_TIM = :UPDATE_TIM  
WHERE  ( MATER_COD = :OLD__MATER_COD )
AND  ( CHECK_ID = :OLD__CHECK_ID )
AND  ( CHECK_IDEA = :OLD__CHECK_IDEA )
AND  ( CHECK_NAM = :OLD__CHECK_NAM )  
AND  ( FID = :OLD__FID )
AND  ( IS_USED = :OLD__IS_USED )
AND  ( UPDATE_MAN = :OLD__UPDATE_MAN )

已经将日期型字段去掉,仍然报2楼错误
回复 支持 反对

使用道具 举报

发表于 2007-12-4 16:06:47 | 显示全部楼层
认真研究一下8楼给的连接,2楼的错误肯定可以搞定
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-4 16:15:11 | 显示全部楼层
数据集更新选项中,我的更新模式选择了主键和修改字段,结果在生成语句时,where条件中只有主键,没有更新字段;如果自己把更新字段加上去的话,报错。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-4 17:05:46 | 显示全部楼层
问题没解决,不信就远程看,我对更新选项失去信心。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-5 01:21 , Processed in 0.042802 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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