欢迎来到天天文库
浏览记录
ID:10792296
大小:43.50 KB
页数:16页
时间:2018-07-08
《以簇方式存储数据对象》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、以簇方式存储数据对象原文地址:ABAP入门----以簇方式存储数据对象(20110703)作者:jesse188可以用数据簇方式对ABAP/4程序的任何复杂内部数据对象进行分组保存,并将其临时存储在ABAP/4内存中,或长时间存储在数据库中。可以在ABAP/4内存中存储数据簇。ABAP/4内存是分配给特定事务的存储区,任何模块都是用关键词CALL或SUBMIT从中进行调用的。使用EXPORTTOMEMORY语句在内存中存储数据对象。使用IMPORTFROMMEMORY语句从内存中读取数据对象。使用FREEMEMORY语句从
2、内存中删除数据簇。一、在ABAP/4内存中存储数据对象将数据对象从ABAP/4程序写入ABAP/4内存,使用以下语句:EXPORT[FROM][FROM]...TOMEMORYID.此语句将列表中指定的数据对象存储为ABAP/4内存中的数据簇。如果忽略选项FROM,则将数据对象存储到自己的名称之下。ID用于标识内存数据,不得超过32个字符。EXPORT总是完全改写ID相同的任何现有数据簇的内容。例DATATEXT1(10)VALUE'Export
3、ing'.DATAITABLIKESBOOKOCCURS10WITHHEADERLINE.DO5TIMES.ITAB-BOOKID=100+SY-INDEX.APPENDITAB.ENDDO.EXPORTTEXT1TEXT2FROM'Literal'TOMEMORYID'text'.EXPORTITABTOMEMORYID'table'.在此示例中,文本字段TEXT1和TEXT2存储到程序的ABAP/4内存的ID“文本”之下,内表ITAB则存储到ID“表”中。二、从内存中读取数据对象要将ABAP/4内存中的数据对象读到AB
4、AP/4程序中,使用下列语句:语法:IMPORT[TO][TO]...FROMMEMORYID.此语句从ABAP/4内存的数据簇中读取列表中指定的数据对象。如果忽略选项TO,则将内存中的数据对象赋给程序中的同名数据对象。如果使用此选项,则将内存中的数据对象写入字段中。ID用于标识内存数据,不得超过32个字符。不必读取存在特定ID下的所有对象。相反,可以从名称中进行选择。如果内存中不包含指定ID下的对象,则将SY-
5、SUBRC设置为4.但是,如果内存中存在带此ID的数据簇,无论数据对象是否也存在,SY-SUBRC之值总是为0.如果簇中不存在数据对象,则目标字段保持不变。例:REPORTZJESSE02.DATATEXT1(10)VALUE'Exporting'.DATAITABLIKESBOOKOCCURS10WITHHEADERLINE.DO5TIMES.ITAB-BOOKID=100+SY-INDEX.APPENDITAB.ENDDO.EXPORTTEXT1FROM'TEST1'TEXT2FROM'Literal'
6、TOMEMORYID'text'.EXPORTITABTOMEMORYID'table'.SUBMITSAPMZTS2ANDRETURN.SUBMITSAPMZTS3.程序SAPMZTS2.REPORTSAPMZTS2.DATA:TEXT1(10),TEXT3LIKETEXT1.IMPORTTEXT1FROMMEMORYID'text'.WRITE:/SY-SUBRC,TEXT1.IMPORTTEXT2TOTEXT3FROMMEMORYID'text'.WRITE:/SY-SUBRC,TEXT3.程序SAPMZTS3.RE
7、PORTSAPMZTS3.DATAJTABLIKESBOOKOCCURS10WITHHEADERLINE.IMPORTITABTOJTABFROMMEMORYID'table'.LOOPATJTAB.WRITE/JTAB-BOOKID.ENDLOOP.运行结果:SAPMZTS2:0TEST10LiteralSAPMZTS3:0000010100000102000001030000010400000105三、删除内存中的数据簇要删除ABAP/4内存中的数据对象,使用下列语句:语法:FREEMEMORY[ID]。如果
8、不附加ID,则此语句删除整个内存,包括此前用EXPORT存储到ABAP/4内存中的所有数据簇。附加ID之后,该语句只删除用此名称命名的数据簇。四、数据库中的数据簇存储数据簇是专就ABAP/4而言。尽管也可以使用SQL语句访问簇数据库,但是,只有ABAP/4语句能够对已存储的数据簇结构
此文档下载收益归作者所有