楼主: houbao408

请教更新数据表回滚的问题!

[复制链接]
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
21#
 楼主| 发表于 2012-7-27 09:53 | 只看该作者
kkmh 发表于 2012-7-27 09:46
不一定非要有commit work语句才会commit,可能在某个环节自动commit了。
方便贴上完整的代码吗?

其它代码不是更新数据表的,更新数据表的基本山都在这里了!!

使用道具 举报

回复
论坛徽章:
52
IT宝贝
日期:2010-11-04 16:48:222013年新春福章
日期:2013-02-25 14:51:24版主4段
日期:2013-03-09 02:21:03Jeep
日期:2013-12-04 15:37:392014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
22#
发表于 2012-7-27 11:31 | 只看该作者
houbao408 发表于 2012-7-27 08:14
比如新增,有相同记录的,或者修改,没有找到记录的都会出错,如果用内表一次性处理,是有错误返回,但是 ...

返回参数不止SY-SUBCN,其他的都可以看看,记得有关于数据库相关的返回值。
如果对脏写比较敏感,则请在需要更新之前就检查并锁定需要更新的记录。

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2011-09-05 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
23#
发表于 2012-7-27 11:40 | 只看该作者
本帖最后由 pwf825 于 2012-7-27 11:41 编辑
houbao408 发表于 2012-7-27 08:14
比如新增,有相同记录的,或者修改,没有找到记录的都会出错,如果用内表一次性处理,是有错误返回,但是 ...

Modify的功能是在有记录的时候修改,没有记录的时候新增,所以Modify基本是不可能会出错,除非内表字段类型和实表字段类型不符,但你的内表是参照实表的,而且还有你新增的内表记录值时,都是先查询实表,然后将实表的某些字段改为你要修改的字段;所以基本不会出错了
一般出错最大可能就是服务器断开,数据库断开等,这样也会有回滚的

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
24#
 楼主| 发表于 2012-7-27 11:44 | 只看该作者
pwf825 发表于 2012-7-27 11:40
Modify的功能是在有记录的时候修改,没有记录的时候新增,所以Modify基本是不可能会出错,除非内表字段类型和 ...

新增和修改不能同时,要分开处理的!所以不能使用modify!

使用道具 举报

回复
论坛徽章:
2
ERP板块每日发贴之星
日期:2011-09-05 01:01:01ITPUB十周年纪念徽章
日期:2011-11-01 16:24:04
25#
发表于 2012-7-27 11:59 | 只看该作者
本帖最后由 pwf825 于 2012-7-27 12:09 编辑

那就分开两个内表吧, 只要新增和修改的数据正确,基本SAP是不会有错误的;如果事前没有将数据错误检测出来,事后想查比较麻烦,需要跟踪系统错误记录来分析,觉得这样不合算; 如果数据都正确还出错,但一条条处理还是会正确的,这样就不是数据错误了,是SAP数据库的问题了;
如果非要实现这种要求应该还是可以解决的,BAPI的使用原理不也是批量执行后才COMMIT的吗,如果有错误可以全部回转的,它可能是将整个过程定义到一个事务里了,具体的我也没搞过,不太清楚,看哪位高手解决吧

刚突然有了个想法,你把这个动作做一个FUNCTION, 然后CALL FUNCTION update_function IN UPDATE TASK ,看是否可以实现你的要求

使用道具 举报

回复
论坛徽章:
15
ITPUB元老
日期:2005-04-13 09:47:24管理团队成员
日期:2013-06-05 17:37:00ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主6段
日期:2012-08-09 02:21:03ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36ITPUB年度最佳版主
日期:2011-04-08 18:37:09BLOG月度发帖之星
日期:2010-05-01 02:15:42ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
26#
发表于 2012-7-27 12:13 | 只看该作者
houbao408 发表于 2012-7-27 08:36
额...更新过了,再更新回去??

如果是oracle数据库的话,是否可以使用rollback功能?

使用道具 举报

回复
论坛徽章:
121
紫蛋头
日期:2013-07-02 19:27:392014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:112014年世界杯参赛球队: 波黑
日期:2014-06-07 00:05:53喜羊羊
日期:2015-03-04 14:49:392015年新春福章
日期:2015-03-06 11:57:31
27#
发表于 2012-7-27 12:25 | 只看该作者
可以使用“锁”

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
28#
 楼主| 发表于 2012-7-28 14:30 | 只看该作者
trigger_lau 发表于 2012-7-27 12:13
如果是oracle数据库的话,是否可以使用rollback功能?

MSSQL 2008的!我现在就是有用了,但是没效果!!

使用道具 举报

回复
求职 : SAP实施
论坛徽章:
261
土豪章
日期:2018-07-10 16:19:05ITPUB18周年纪念章
日期:2018-09-17 10:09:49ITPUB18周年纪念章
日期:2018-09-17 10:12:57妮可·罗宾
日期:2018-10-28 13:07:10ITPUB18周年纪念章
日期:2018-11-13 15:31:24ITPUB18周年纪念章
日期:2018-11-13 15:40:4519周年集字徽章-庆
日期:2019-09-06 18:30:1219周年集字徽章-19
日期:2021-02-03 16:43:4820周年集字徽章-年	
日期:2023-07-21 18:25:26
29#
 楼主| 发表于 2012-7-28 14:31 | 只看该作者
rosefish 发表于 2012-7-27 12:25
可以使用“锁”

嗯,在看这个,不知道能不能实现!

使用道具 举报

回复
论坛徽章:
15
ITPUB元老
日期:2005-04-13 09:47:24管理团队成员
日期:2013-06-05 17:37:00ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主6段
日期:2012-08-09 02:21:03ITPUB官方微博粉丝徽章
日期:2011-06-28 19:45:36ITPUB年度最佳版主
日期:2011-04-08 18:37:09BLOG月度发帖之星
日期:2010-05-01 02:15:42ITPUB北京九华山庄2008年会纪念徽章
日期:2008-01-21 16:50:24ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:44会员2007贡献徽章
日期:2007-09-26 18:42:10
30#
发表于 2012-7-28 19:05 | 只看该作者
houbao408 发表于 2012-7-28 14:30
MSSQL 2008的!我现在就是有用了,但是没效果!!

你是用的源sql语句执行的吗

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表