我已經嘗試使用FM ENQUE_DELETE,但我一直沒有得到預期的結果來刪除某些表條目的鎖。刪除表條目鎖
我注意到有不同種類的鎖,鎖定這些表項的程序使用鎖定類型'E'。
我可以將鎖定類型設置爲'S'(共享),以便第一個程序可以「鎖定」表項,但是一旦第二個程序運行,它可以刪除表鎖?
我已經嘗試使用FM ENQUE_DELETE,但我一直沒有得到預期的結果來刪除某些表條目的鎖。刪除表條目鎖
我注意到有不同種類的鎖,鎖定這些表項的程序使用鎖定類型'E'。
我可以將鎖定類型設置爲'S'(共享),以便第一個程序可以「鎖定」表項,但是一旦第二個程序運行,它可以刪除表鎖?
首先鎖定表的程序通常是設置的類型。 如果它不是您的程序,您肯定無法修改在運行時設置的標準鎖定類型。我所知道的。
如果是您的程序,那麼您可以自定義,您可以使用哪種鎖定類型。
http://www.sapdev.co.uk/dictionary/lock_enqueue.htm
會告訴您關於鏈接中的類型和代碼示例應該提供您可能需要的所有信息。
好的。我應該推進我的調查。
我找到了一個方法。 通過FM調試ENQUE_REPORT/READ/DELETE, 我發現了一種方法來獲取外部鎖並將它們刪除, 使程序假定當前用戶是鎖定外部鎖的用戶。 =]
不應該需要手動明確刪除特定的表鎖定條目。始終只使用生成的FM enqueue_...
和dequeue_...
鎖定/解鎖數據庫記錄!
這將刪除以前創建的鎖條目。
您正在使用哪些表,檢查SE11中的鎖對象例如:ENQUEUE_和DEQUEUE_(如果可用)在OPEN SQL語句前後調用它們(如果未創建鎖對象)。
參考:http://www.sapnuts.com/courses/core-abap/open-sql/using-lock-objects.html