我尝试过使用FM ENQUE_DELETE,但我一直没有得到预期的结果来删除某些表条目的锁。
我注意到有不同类型的锁,锁定这些表条目的程序使用锁定类型“E”。
我可以将锁类型设置为'S'(共享),这样第一个程序就可以“锁定”表项,但是一旦第二个程序运行,它可以删除表锁吗?
答案 0 :(得分:0)
首先锁定表的程序通常是类型设置。 如果它不是您的程序,您肯定无法并且允许在运行时修改已设置的标准locktype。据我所知。
如果是您的程序,那么您可以自定义您可以使用的锁定类型。
http://www.sapdev.co.uk/dictionary/lock_enqueue.htm
将告诉您类型,链接中的代码示例应提供您可能需要的所有信息。
答案 1 :(得分:0)
确定。我应该推动我的调查。
我找到了办法。 通过调试FM ENQUE_REPORT / READ / DELETE, 我找到了一种获取外部锁并将其删除的方法, 使程序假定当前用户是锁定外部锁的用户。 =]
答案 2 :(得分:0)
永远不需要手动删除特定的表锁定条目。始终只使用生成的FM enqueue_...
和dequeue_...
来锁定/解锁数据库记录!
这将删除先前创建的锁定条目。
答案 3 :(得分:0)
您正在使用哪些表,检查SE11中的锁定对象ex:ENQUEUE_和DEQUEUE_,如果可用,则在OPEN SQL语句之前和之后调用它们,如果没有创建锁定对象。
参考:http://www.sapnuts.com/courses/core-abap/open-sql/using-lock-objects.html