用什么软件来做网站,做网站每年运营要花掉多少钱,重庆模板网站多少钱,传媒建站推荐在SAP中使用锁对象#xff0c;用于避免在数据库中插入或更改数据时出现不一致的情况
1.创建锁对象
数据准备 学校表(ZDBT_SCH_437) 使用事务码SE11创建锁对象
点击锁对象单选按钮#xff0c;输入以E开头的锁定对象的名称#xff0c;然后点击创建按钮 锁对象名…在SAP中使用锁对象用于避免在数据库中插入或更改数据时出现不一致的情况
1.创建锁对象
数据准备 学校表(ZDBT_SCH_437) 使用事务码SE11创建锁对象
点击锁对象单选按钮输入以E开头的锁定对象的名称然后点击创建按钮 锁对象名称一定要以E开头后面追加Z或Y再追加其他内容名称长度不能超过16 输入简短描述点击表选项卡在名称字段中输入表名称并选择锁模式 锁模式 点击锁参数选项卡将出现以下屏幕 在锁参数标签页默认显示表的主键这些参数最终构成函数的参数 保存并激活后则自动生成以下2个函数当锁对象删除时这2个函数也会一起删除 提示Tips 在SE11界面中通过菜单 【转到】|【锁模块】可以查看到函数名 锁对象激活后会在系统中自动产生2个函数分别用于表对象的锁定以及表对象的释放 ① 创建锁定的函数的命名规则为ENQUEUE_ 锁对象名 ② 释放锁定的函数的命名规则为DEQUEUE_ 锁对象名 2.在程序中使用锁对象
加锁解锁测试 加锁期间事务码 SM12可以对锁对象进行查看和删除 编写一段代码对学校表(ZDBT_SCH_437)加锁一分钟后释放 REPORT z437_test_2024.CALL FUNCTION ENQUEUE_EZ_SCH_437EXPORTINGmode_zdbt_sch_437 Emandt sy-mandt_scope 2EXCEPTIONSforeign_lock 1system_failure 2OTHERS 3.IF sy-subrc 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.WRITE / Table ZDBT_SCH_437 Was Locked..WAIT UP TO 60 SECONDS.CALL FUNCTION DEQUEUE_EZ_SCH_437EXPORTINGmode_zdbt_sch_437 Emandt sy-mandt.WRITE / Table ZDBT_SCH_437 Was Unlocked..
ENDIF. 运行期间SM12查看锁对象 程序运行结束后 刷新SM12 可以看到锁已经释放 编写一段代码对学校表(ZDBT_SCH_437)进行修改
REPORT z437_test_2024.DATA: gt_school TYPE STANDARD TABLE OF zdbt_sch_437 WITH HEADER LINE.SELECT * FROM zdbt_sch_437 INTO TABLE gt_school.CALL FUNCTION ENQUEUE_EZ_SCH_437EXPORTINGmode_zdbt_sch_437 Emandt sy-mandt_scope 2EXCEPTIONSforeign_lock 1system_failure 2OTHERS 3.IF sy-subrc IS INITIAL.MODIFY zdbt_sch_437 FROM TABLE gt_school.CALL FUNCTION DEQUEUE_EZ_SCH_437EXPORTINGmode_zdbt_sch_437 Emandt sy-mandt.WRITE / Data Was Saved Successfully.ELSE.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF. 上锁的一般步骤 先上锁上锁成功之后从数据库取数据然后更改数据接着更新到数据库最后解锁 按照这个步骤才能保证更改完全运行在锁的保护机制下