SY-SUBRC 的含义
来源:互联网 发布:全球最大交友软件 编辑:程序博客网 时间:2024/04/30 08:55
使用SELECT语句选择查询:
SY-SUBRC = 0: 至少有一行数据,当ENDSELECT语句执行完,SY-DBCNT中保存着记录的个数。
SY-SUBRC = 4: 没有数据。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”时才会有,
表示: WHERE条件指定的记录不止一行,结果是没有记录被选中。
使用INSERT语句,向表中插入一行,必须注意INSERT的顺序与表中字段的顺序一致:
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行数,0或1。
SY-SUBRC = 4: 由于有相同的KEY存在,所以插入失败。
使用LOOP语句来遍历一个内表:
SY-SUBRC = 0: 循环至少被执行一次。
SY-SUBRC = 4: 循环没有被执行,可能是没有数据,也可能是没有符合条件的记录。
使用DELETE语句来删除一条记录:
SY-SUBRC = 0: 找到一行并删除之,如果该表有不唯一主键,也就是有多条重复的记录,则只删除第一条记录。
SY-SUBRC = 4: 没有找到符合条件的记录,也没有删除。
使用UPDATE语句来更新一条记录:
SY-SUBRC = 0: 找到记录并更新,(如果有多条记录呢?)
SY-SUBRC = 4: 没有找到符合条件的记录,也没有更新。
+++++++++++++++++++++++ 实例RFC ++++++++++++++++++++++++++++++++++++++++++++++
*建立临时表ZTEST1,字段为:
* ZUSERID CHAR 20
* ZPASSWD CHAR 20
*-------------------------------------------------
FUNCTION ZRFC_01.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(ACTION) TYPE /1SAP1/CL_ACH0001 传入参数ACTION,表示CREATE、EDIT、DELETE记录
*" VALUE(WHEREUSERID) TYPE /GC1/DTE_MSG_TXT 传入参数WHEREUSERID,按照USERID来查找关键字
*" EXPORTING
*" VALUE(RETURN) TYPE /AIN/ACT_PUB_PARAMNAME 传出参数RETURN,返回是否成功,空串表示成功,非空串表示未成功
*" VALUE(ERRNUM) TYPE /AIN/ACTIVITY_COUNTER 传出参数ERRNUM,返回错误代码
*" TABLES
*" ZTEMPTABLE STRUCTURE ZTEST1 传入、传出表,以表为参数
*"----------------------------------------------------------------------
TABLES:ZTEST1.
DATA:
WA_ZTEMPTABLE LIKE ZTEMPTABLE,
TRANSACTION_ID LIKE ARFCTID,
V_VAILD(1) TYPE C.
V_VAILD = 'X'.
* OPEN A DATA TRANSACTION
CALL FUNCTION 'TRANSACTION_BEGIN'
IMPORTING
TRANSACTION_ID = TRANSACTION_ID.
CASE ACTION .
*按照关键字ZUSERID查询
WHEN 'QUERY'.
SELECT * FROM ZTEST1 INTO TABLE ZTEMPTABLE where ZUSERID = WHEREUSERID.
IF SY-SUBRC = 0.
ELSE.
V_VAILD = ''.
ERRNUM = SY-SUBRC.
ENDIF.
*选择所有的记录
WHEN 'SELECTALL'.
SELECT * FROM ZTEST1 INTO TABLE ZTEMPTABLE.
IF SY-SUBRC = 0.
ELSE.
V_VAILD = ''.
ERRNUM = SY-SUBRC.
ENDIF.
*插入记录
WHEN 'CREATE'.
LOOP AT ZTEMPTABLE INTO WA_ZTEMPTABLE.
INSERT ZTEST1 FROM WA_ZTEMPTABLE.
IF SY-SUBRC = 0.
ELSE.
V_VAILD = ''.
ERRNUM = SY-SUBRC.
ENDIF.
ENDLOOP.
*修改记录
WHEN 'EDIT'.
LOOP AT ZTEMPTABLE INTO WA_ZTEMPTABLE.
UPDATE ZTEST1 FROM WA_ZTEMPTABLE.
IF SY-SUBRC = 0.
ELSE.
V_VAILD = ''.
ERRNUM = SY-SUBRC.
ENDIF.
ENDLOOP.
*删除记录
WHEN 'DELETE'.
LOOP AT ZTEMPTABLE INTO WA_ZTEMPTABLE.
DELETE ZTEST1 FROM WA_ZTEMPTABLE.
IF SY-SUBRC = 0.
ELSE.
V_VAILD = ''.
ERRNUM = SY-SUBRC.
ENDIF.
ENDLOOP.
WHEN OTHERS.
ENDCASE.
*如果V_VALID为X,则表示成功,否则表示失败,并返回RETURN错误代码
IF V_VAILD = 'X'.
CALL FUNCTION 'TRANSACTION_END'
EXPORTING
TRANSACTION_ID = TRANSACTION_ID.
RETURN = ''.
ELSE.
CALL FUNCTION 'TRANSACTION_ABORT'
EXPORTING
TRANSACTION_ID = TRANSACTION_ID.
RETURN = 'THE CURRENT ACTION IS FAILURE!'.
ENDIF.
ENDFUNCTION.
- SY-SUBRC 的含义
- SY-SUBRC 的含义
- SY-SUBRC 的含义
- SY-SUBRC 的含义
- SY-SUBRC 的含义
- <转>SY-SUBRC 的含义
- 【转】SY-SUBRC 的含义
- ABAP SY-SUBRC的含义解析
- sy-subrc的用法
- SY-SUBRC 的含义(摘自-兄弟 感悟人生)
- ABAP SY-SUBRC 使用过程中返回值的几种含义
- SY-SUBRC (SAP)
- ABAP-debug-“SY-SUBRC” 返回值
- ABAP-debug-“SY-SUBRC” 返回值
- S4 更新MSEG失败sy-subrc = 4
- SY-REPID和SY-CPROG的区别
- sy-repid 和 sy-cprog的区别
- sy-index和sy-tabix的区别
- AngularJS 五大特性(为克服HTML在构建应用上的不足而设计)
- Android日常开发总结的技术经验60条
- Qt编写串口通信程序全程图文讲解 --转载
- peugeot 308 5 doors
- iOS 代码实现获得应用的版本号(Version/Build)
- SY-SUBRC 的含义
- Java与设计模式-责任链模式
- ContextMenu.iOS
- CSS3的弹性盒模型
- Spring4.xx出现无法解析xml文件
- UIImage转NSData,NSData转UIImage
- 欢迎使用CSDN-markdown编辑器
- 科维PLC运行时系统ProConOS embedded CLR 2.2 特定应用
- JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解