为用户分配有效期程序-更新数据库的TRY使用

REPORT ZPMRP030.
TABLES:USR02.
DATA: L_ERROR      TYPE REF TO CX_SY_OPEN_SQL_DB,
      L_ERROR_TEXT TYPE STRING.

SELECT-OPTIONS:S_BNAME FOR USR02-BNAME.
SELECT * FROM USR02 INTO TABLE @DATA(LT_USR02)
      WHERE  UFLAG NE 0
         AND BNAME IN @S_BNAME.
IF SY-SUBRC = 0.
  LOOP AT LT_USR02 ASSIGNING FIELD-SYMBOL(<FS_USR02>).
    <FS_USR02>-GLTGB = '20190101'."使用指针可以直接更新内表
  ENDLOOP.

  TRY  .
      UPDATE USR02 FROM TABLE LT_USR02.   "更新数据库时尽量使用try
      IF SY-SUBRC = 0.
        COMMIT WORK AND WAIT.
        MESSAGE '更新成功' TYPE 'S'.
      ENDIF.
    CATCH CX_SY_OPEN_SQL_DB INTO L_ERROR.
      L_ERROR_TEXT = L_ERROR->GET_TEXT( ) . "得到错误信息
      MESSAGE L_ERROR_TEXT TYPE 'E'.
  ENDTRY.
ENDIF.

猜你喜欢

转载自www.cnblogs.com/BruceKing/p/11950414.html
今日推荐