-1

我曾尝试使用 FM ENQUE_DELETE,但我一直没有得到预期的结果来删除某些表条目的锁定。

我注意到有不同类型的锁,并且锁定这些表条目的程序正在使用锁类型“E”。

我可以将锁定类型设置为“S”(共享),以便第一个程序可以“锁定”表条目,但是一旦第二个程序运行,它就可以删除表锁定?

4

4 回答 4

0

首先锁定表的程序通常具有设置的类型。如果它不是您的程序,您肯定不能也不允许修改在运行时设置的标准锁类型。我所知道的。

如果是你的程序,那么你可以自定义,你可以使用哪种锁类型。

http://www.sapdev.co.uk/dictionary/lock_enqueue.htm

将告诉您有关类型的信息,链接中的代码示例应提供您可能需要的所有信息。

于 2013-08-23T10:56:10.693 回答
0

永远不需要手动显式删除特定的表锁定条目。始终只使用生成的 FMenqueue_...dequeue_...锁定/解锁数据库记录!

  1. 调用 ENQUEUE_EZyour_table
  2. 对 your_table 进行更改
  3. 调用 DEQUEUE_EZyour_table

这将删除先前创建的锁定条目。

于 2013-09-03T10:44:06.170 回答
0

您正在使用哪些表,检查 SE11 中的锁定对象,例如:ENQUEUE_ 和 DEQUEUE_,如果可用,则在 OPEN SQL 语句之前和之后调用它们,如果没有创建锁定对象。

参考: http: //www.sapnuts.com/courses/core-abap/open-sql/using-lock-objects.html

于 2014-02-06T06:12:54.293 回答
0

好的。我应该推动我的调查。

我找到了一种方法。通过调试FM的ENQUE_REPORT/READ/DELETE,我找到了一种获取外锁并删除它们的方法,使程序假设当前用户是锁定外锁的用户。=]

于 2013-08-23T12:23:08.797 回答