首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABAP中的自主事务模拟

ABAP中的自主事务模拟
EN

Stack Overflow用户
提问于 2021-11-26 09:26:53
回答 2查看 85关注 0票数 0

我试图在主程序仍在运行时提交数据库表中的DML更新,而不提交它,因为将来可能会出现错误,可能需要回滚它,但内部(保存的)更新应该保留。就像在Oracle自主事务中一样。

Call function ... starting new task ...Submit ... and return不起作用,因为它们影响主事务。

有没有一种方法可以在不中断主LUW的情况下启动并提交嵌套数据库LUW?

EN

回答 2

Stack Overflow用户

发布于 2021-11-26 10:21:17

我不知道有什么方法可以用OpenSQL做到这一点。但当您使用ADBC framework时,则类的每个实例CL_SQL_CONNECTION operates within a separate database LUW

我通常不建议使用ADBC,除非您必须这样做,因为:

  • 你现在是以字符串的形式编写SQL语句,这意味着你没有编译时的语法检查。
  • 你不能再把变量放入SQL代码中。(好吧,您可以,但您不应该这样做,因为您可能会以这种方式创建SQL注入漏洞)。你需要使用statement->set_param.
  • You来传递所有的变量现在都在编写NativeSQL,这意味着你可能会无意中写出无法移植到其他数据库后端的SQL。
票数 0
EN

Stack Overflow用户

发布于 2021-11-26 10:32:58

您可以创建单独的函数来保存您的更改,并且可以使用如下所示的启动新任务模式来调用您的函数。

代码语言:javascript
复制
  call function 'ZFUNCTION' starting new task 'SAVECHANGES'
   exporting
     param  = value.
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70122125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档