ABAP:数据库操作时的锁定问题

来源:互联网 发布:程序员入门需要多久 编辑:程序博客网 时间:2024/05/30 19:32

要支持更新 绑定计划, SAP 系统提供了 完全不同于 数据库锁定 的锁定机制 SAP 锁定的优点 在于可以在 多重屏幕间 保留它们, 如同 更新事务 ( ) 所需要的。

数据库锁定 是数据库系 统中的物理 锁定。在程 序中使用更 新语句(SELECT SINGLE FOR UPDATE INSERT UPDATE MODIFY DELETE 时,系统自 动创建数据 库锁定。数 据库锁定在 每次数据库 提交(即每 次屏幕更改 )时自动释 放。因此, 数据库锁定 对长于一个 屏幕的锁定 无效,并且 作为程序员 也无法控制

SAP 锁定是 SAP 系统定义的 逻辑锁定。 要使用它们 ,首先定义 指定要锁定 数据库对象 的锁定对象 。激活锁定 对象时,系 统生成所定 义的每个锁 定对象的锁 定和解锁例 程(称为 ENQUEUE-<object> DEQUEUE-<object> 的功能模块 )。调用这 些功能模块 ABAP/4 程序中直接 设置和释放 锁定。

关于使用 SAP 锁定的详细 信息,参见 SAP 系统中的锁 ( 9–25)

 

对于使用se11创建的“锁对象”,如EZUC_MR_NUMB,则系统自动生成,锁定和解锁函数,名称如下:

  ENQUEUE_EZUC_MR_NUMB "锁定操作函数

  DEQUEUE_EZUC_MR_NUMB "解锁操作函数

 

具体的实现细节可以使用SE17事务代码查看,但不允许修改。

 

调用方法,锁定:

 

解锁:

 

 

在此之间可以进行此数据库表的操作,及事务管理。

原创粉丝点击