注意:在一个程序中给表加锁,程序结束会自动解锁,可以通过SM12查看是否个表加锁成功
lock mode有三种模式:分别是S,E,X.含义如下:
S (Shared lock, read lock)
E (Exclusive lock, write lock)
X (eXclusive lock, extended write lock, cannot be cumulated)
模式E:当更改数据的时候设置为此模式。
模式S:本身不需要更改数据,但是希望显示的数据不被别人更改。
模式X:和E类似,但是不允许累加,完全独占。
允许附加锁模式 E S X
E 否(是) 否(是) 否(否)
S 否(是[无其他用户加S]) 是(是) 否(否)
X 否(否) 否(否) 否(否)
括号外为其他用户操作,括号内为同一个用户的操作
1、加锁
CALL FUNCTION 'ENQUEUE_E_TABLE'
EXPORTING
MODE_RSTABLE = 'E'
TABNAME = 'SFLIGHT'
* VARKEY = //key值加上就是锁行,不加为锁住整个表
* X_TABNAME = ' '
* X_VARKEY = ' '
_SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
2、解锁
CALL FUNCTION 'DEQUEUE_E_TABLE'
EXP

文章介绍了在程序中对数据库表进行加锁和解锁的操作,包括Lockmode的三种模式:S,E,X,以及如何使用特定的函数模块ENQUEUE_E_TABLE和DEQUEUE_E_TABLE进行锁定和解锁。同时提到了在SE11事务中创建锁对象的方法,并指出解锁和加锁的函数模块名称规则。
最低0.47元/天 解锁文章
2008

被折叠的 条评论
为什么被折叠?



