sql异常获取
"测试主键重复的异常 不会使程序直接dump
DATA: lcx_error TYPE REF TO cx_root, "cx_sy_sql_error . "cx_sy_open_sql_db.
i_tab LIKE TABLE OF spfli WITH HEADER LINE,
err_text TYPE c LENGTH 1000.
TRY."**这里不能用perform on commit 不然不会执行catch的语句**
INSERT zwfgetno FROM TABLE gt_zwfgetno.
"更新中间表
UPDATE zwfinfo SET zdate = sy-datum znum = zwfinfo-znum WHERE zwftyp = zwfinfo-zwftyp.
CATCH cx_sy_open_sql_db INTO lcx_error.
err_text = lcx_error->get_text( ). "得到错误信息.
"存在异常
sy-subrc = **自定义数字作为区分**
ENDTRY.
也可以不使用cx_sy_open_sql_db类,
变量和表的操作均可直接通过cx_root获取错误信息
并返回sy-subrc的值
TRY.
"gv_je = 'test'."变量赋值
INSERT zyszk01 FROM TABLE gt_zyszk01."表的操作
CATCH cx_root INTO gv_exref.
gv_msgtxt = gv_exref->get_text( )."括号中要有个空格 不然报错
WRITE: / gv_msgtxt.
ENDTRY.
1570

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



