2020-09-01 08:56发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好大师,
我想知道FM DB_COMMIT和ABAP语句COMMIT WORK之间有什么区别。 功能模块DB_COMMIT将提交所有数据库更改(但是COMMIT WORK也将执行相同的操作),那么编写DB_COMMIT的意义何在? 我读到DB_COMMIT将结束DB LUW,而COMMIT WORK将结束SAP LUW,但是有没有实际的例子可以证明两者之间的区别?
你好高级banerjee ,
您在上面提到的两项承诺 只是类型为Database Commits,让我进一步解释以更好地理解!
什么是数据库提交?
这些是系统用来关闭所有打开的游标的命令/控件。 应用在桌子上。
换句话说,在直接/间接处理表的程序执行过程中,系统将预先锁定表,直到在相关表上完成其操作为止。 这些提交语句有助于释放任何其他工作流程的表。
这是两种类型:
1)隐式提交
2)显式提交
隐式提交:
这些将创建自己的工作流程来启动和LUW,这意味着它将不会干扰其他 工作流程,直到完成为止,一旦有空闲的工作流程,它将开始使用可用的工作流程启动其LUW。 顾名思义,该调用是隐式的,并在以下实例中实时触发:
->在任何事务中完成用户交互之后。
->之后
->使用外部框架时。
简而言之,此隐式提交将适用于所有打开的数据库连接
显式提交
这些是我们最常用的提交。 顾名思义,在程序中显式编码的Commit语句称为显式Commit。
即使在程序中显式调用FM DB_COMMIT也是显式Commit。 我们将使用它开发的许多对象。
正如您所提到的,该Commit关闭正在运行的打开的LUW。
总结一下:
- ->隐式提交(DB Commit)仅关闭数据库连接,但除了DB连接之外,显式提交也将关闭正在运行的LUW。
->隐式提交(DB提交)等待释放工作进程以启动其自己的LUW来关闭数据库连接,但显式提交将关闭数据库连接以及相应的LUW 循环并完成LUW所需的操作。
->这就是我们明确调用COMMIT WORK语句的确切原因,因为我们想在下一步操作中进一步快速发展,而 可以等待系统关闭数据库连接。
希望您现在有了更好的主意!
问候!
感谢Satish的回答。 真的很有帮助。
最多设置5个标签!
你好高级banerjee ,
您在上面提到的两项承诺 只是类型为Database Commits,让我进一步解释以更好地理解!
什么是数据库提交?
这些是系统用来关闭所有打开的游标的命令/控件。 应用在桌子上。
换句话说,在直接/间接处理表的程序执行过程中,系统将预先锁定表,直到在相关表上完成其操作为止。 这些提交语句有助于释放任何其他工作流程的表。
这是两种类型:
1)隐式提交
2)显式提交
隐式提交:
这些将创建自己的工作流程来启动和LUW,这意味着它将不会干扰其他 工作流程,直到完成为止,一旦有空闲的工作流程,它将开始使用可用的工作流程启动其LUW。 顾名思义,该调用是隐式的,并在以下实例中实时触发:
->在任何事务中完成用户交互之后。
->之后
->使用外部框架时。
简而言之,此隐式提交将适用于所有打开的数据库连接
显式提交
这些是我们最常用的提交。 顾名思义,在程序中显式编码的Commit语句称为显式Commit。
即使在程序中显式调用FM DB_COMMIT也是显式Commit。 我们将使用它开发的许多对象。
正如您所提到的,该Commit关闭正在运行的打开的LUW。
总结一下:
- ->隐式提交(DB Commit)仅关闭数据库连接,但除了DB连接之外,显式提交也将关闭正在运行的LUW。
->隐式提交(DB提交)等待释放工作进程以启动其自己的LUW来关闭数据库连接,但显式提交将关闭数据库连接以及相应的LUW 循环并完成LUW所需的操作。
->这就是我们明确调用COMMIT WORK语句的确切原因,因为我们想在下一步操作中进一步快速发展,而 可以等待系统关闭数据库连接。
希望您现在有了更好的主意!
问候!
感谢Satish的回答。 真的很有帮助。
一周热门 更多>