OPEN CURSOR 例子
来源:互联网 发布:python 类继承 编辑:程序博客网 时间:2024/06/03 21:54
BC - ABAP Programming中三个例子,很好,摘抄如下,以供学习
1.
DATA: C1 TYPE CURSOR,
C2 TYPE CURSOR.
DATA: WA1 TYPE SPFLI,
WA2 TYPE SPFLI.
DATA: FLAG1,
FLAG2.
OPEN CURSOR: C1 FOR SELECT CARRID CONNID
FROM SPFLI
WHERE CARRID = 'LH',
C2 FOR SELECT CARRID CONNID CITYFROM CITYTO
FROM SPFLI
WHERE CARRID = 'AZ'.
DO.
IF FLAG1 NE 'X'.
FETCH NEXT CURSOR C1 INTO CORRESPONDING FIELDS OF WA1.
IF SY-SUBRC <> 0.
CLOSE CURSOR C1.
FLAG1 = 'X'.
ELSE.
WRITE: / WA1-CARRID, WA1-CONNID.
ENDIF.
ENDIF.
IF FLAG2 NE 'X'.
FETCH NEXT CURSOR C2 INTO CORRESPONDING FIELDS OF WA2.
IF SY-SUBRC <> 0.
CLOSE CURSOR C2.
FLAG2 = 'X'.
ELSE.
WRITE: / WA2-CARRID, WA2-CONNID,
WA2-CITYFROM, WA2-CITYTO.
ENDIF.
ENDIF.
IF FLAG1 = 'X' AND FLAG2 = 'X'.
EXIT.
ENDIF.
ENDDO.
2.
DATA C TYPE CURSOR.
DATA WA TYPE SBOOK.
OPEN CURSOR C FOR SELECT CARRID CONNID FLDATE BOOKID SMOKER
FROM SBOOK
ORDER BY CARRID CONNID FLDATE SMOKER BOOKID.
FETCH NEXT CURSOR C INTO CORRESPONDING FIELDS OF WA.
WHILE SY-SUBRC = 0.
IF WA-SMOKER = ' '.
PERFORM NONSMOKER USING C.
ELSEIF WA-SMOKER = 'X'.
PERFORM SMOKER USING C.
SKIP.
ELSE.
EXIT.
ENDIF.
ENDWHILE.
FORM NONSMOKER USING N_CUR TYPE CURSOR.
WHILE WA-SMOKER = ' ' AND SY-SUBRC = 0.
FORMAT COLOR = 5.
WRITE: / WA-CARRID, WA-CONNID, WA-FLDATE, WA-BOOKID.
FETCH NEXT CURSOR N_CUR INTO CORRESPONDING FIELDS OF WA.
ENDWHILE.
ENDFORM.
FORM SMOKER USING S_CUR TYPE CURSOR.
WHILE WA-SMOKER = 'X' AND SY-SUBRC = 0.
FORMAT COLOR = 6.
WRITE: / WA-CARRID, WA-CONNID, WA-FLDATE, WA-BOOKID.
FETCH NEXT CURSOR S_CUR INTO CORRESPONDING FIELDS OF WA.
ENDWHILE.
ENDFORM.
The program opens a cursor for the database table SBOOK. After the first FETCH
statement, a subroutine is called, which is dependent on the contents of the
SMOKER column. The cursor is passed to an interface parameter in the subroutine.
The subroutines read further lines until the contents of the SMOKER column change.
The subroutines perform different tasks using the lines read by the cursor.
3.
DATA: WA_SPFLI TYPE SPFLI,
WA_SFLIGHT TYPE SFLIGHT.
DATA: C1 TYPE CURSOR,
C2 TYPE CURSOR.
OPEN CURSOR C1 FOR SELECT *
FROM SPFLI
ORDER BY PRIMARY KEY.
OPEN CURSOR C2 FOR SELECT *
FROM SFLIGHT
ORDER BY PRIMARY KEY.
DO.
FETCH NEXT CURSOR C1 INTO WA_SPFLI.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
WRITE: / WA_SPFLI-CARRID, WA_SPFLI-CONNID.
DO.
FETCH NEXT CURSOR C2 INTO WA_SFLIGHT.
IF SY-SUBRC <> 0 OR WA_SFLIGHT-CARRID <> WA_SPFLI-CARRID
OR WA_SFLIGHT-CONNID <> WA_SPFLI-CONNID.
EXIT.
ELSE.
WRITE: / WA_SFLIGHT-CARRID, WA_SFLIGHT-CONNID,
WA_SFLIGHT-FLDATE.
ENDIF.
ENDDO.
The program opens a cursor for each of the table SPFLI and SFLIGHT. Since both
tables are linked by a foreign key relationship, it is possible to program a nested loop
by sorting the selection by its primary key, so that the data read in the inner loop
depends on the data in the outer loop. This programming method is quicker than
using nested SELECT statements, since the cursor for the inner loop does not
continually have to be reopened.
- OPEN CURSOR 例子
- open cursor for
- oracle Cursor的例子
- oracle cursor小例子
- pl/sql cursor within a cursor 例子
- Open 例子
- 当open cursor时就执行cursor的声明.Test open Cursor!
- Sql Server:Cursor的例子
- oracle之cursor小例子
- Cursor类的一个例子
- mysql存储过程例子cursor
- open cursor 是否去获取数据?
- OPEN CURSOR PACKAGE SIZE AND WORK AREA
- 如何查看当前Open的Cursor
- ORA-06511: PL/SQL: cursor already open
- 显式调用cursor的一个例子
- plsql学习:cursor游标使用例子(1)
- Oracle 'open cursor loop fetch into' and 'for in cursor loop'
- asp读取一个图片并转为base64编码
- 29-Menu菜单,主菜单和子菜单,点击菜单选项之后,对文本信息进行排版设置
- sqlserver 2008表分区操作
- 大型高并发高负载网站的系统架构
- Red 编程语言简介
- OPEN CURSOR 例子
- jquery click事件,多次执行
- Shell学习笔记
- Linux下C编程:undefined reference to ‘pthread_create'问题
- 异常解释
- Largest Rectangle in Histogram
- linux 初学之命令行
- JS模态窗口返回值兼容问题解决方案
- 干掉com.mchange.v2.log.MLog <clinit>的日志