①此外将内表数据写入数据库,推荐用Modify而不是insert,因为会有些key一样的报dump

loop at it_record.

*          报错
*          insert zzphilos0001 FROM TABLE it_record.

*          不报错,不推荐
*          insert zzphilos0001 FROM it_record.

*          推荐

       modify zzphilos0001 FROM it_record.
 endloop.

不循环内表的话也行

*          报错,key的问题
*        insert zzphilos0001 FROM TABLE it_record.

*          推荐

     modify zztb from table it_record.
          if sy-subrc eq 0.
            commit work.
          else.
            rollback work.
          endif.

②对数据库操作之后要有判断,进行commit或者rollback,BAPI也有对应的commit和rollback

call function 'BAPI_RESERVATION_CHANGE'
      exporting
        reservation               = v_res_no
      tables
        reservationitems_changed  = it_resitems_changed
        reservationitems_changedx = it_resitems_changedx
        return                    = it_return.
    loop at it_return.
      if it_return-type = 'E' or it_return-type = 'A'.
        call function 'BAPI_TRANSACTION_ROLLBACK'.
        message it_return-message type it_return-type.
      else.
        call function 'BAPI_TRANSACTION_COMMIT'
          exporting
            wait = 'X'.
        message s001(00) with 'Change successfully!'.
      endif.
    endloop.
    clear it_return.

③直接对数据库表的更新操作(单个字段)

LOOP AT g_it_alv_stpox ASSIGNING <l_wa_alv>.

UPDATE marc SET zz_bunit = <l_wa_alv>-zz_bunit WHERE werks = <l_wa_alv>-werks
                                                       AND matnr = <l_wa_alv>-idnrk.
      IF sy-subrc EQ 0.
        COMMIT WORK.
        <l_wa_alv>-zz_message  = l_message_s.
      ELSE.
        ROLLBACK WORK.
        <l_wa_alv>-zz_message  = l_message_f.
      ENDIF.

ENDLOOP.

ABAP开发需要养成的习惯—程序修改数据库表的更多相关文章

  1. ABAP开发需要养成的习惯—处理规范,日期,sort,改结构

    sELECT select之后不要急着处理,最多用下sort还有delete adjacent,不用sy-subrc判断之后loop操作,要注意处理逻辑. sort一个好处是为了后面read tabl ...

  2. ABAP开发需要养成的习惯—变量定义

    变量定义 Global variables are BAD 定义内表先在程序开头定义types,如 types: begin of ty_structure,         id type i,   ...

  3. FineUI之使用SQL脚本从数据库表中生成对应的输入控件

    在WEB开发时.常常须要根据数据库表中的字段建立对应的输入控件,来获取输入的数据.每次都须要按字段来敲,显然太低效.并且easy出错.这里提供一个SQL脚本生成对应输入控件的方法. USE DBDem ...

  4. [SAP ABAP开发技术总结]将文件存储到数据库表中,并可发送邮件

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. [SAP ABAP开发技术总结]逻辑数据库

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. Web前端开发工程师养成计划【转载】

    Web前端开发工程师养成计划(入门篇) 最原始的忠告:这个世界上有想法的人很多,但是有想法又能实现它的人太少! 首先要感谢伟大的Web2.0概念.产品概念.用户体验概念.jQuery插件,是它们在中国 ...

  7. [SAP ABAP开发技术总结]OPEN SQL

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. [改善Java代码]养成良好习惯,显式声明UID

    建议11: 养成良好习惯,显式声明UID 我们编写一个实现了Serializable接口(序列化标志接口)的类, Eclipse马上就会给一个黄色警告:需要增加一个Serial Version ID. ...

  9. ABAP开发人员未来应该学些什么

    2007年1月我大学毕业进入SAP Chengdu从事开发工作,到今天已经整整11年了. 这张图在ABAP开发圈子里曾广为流传: 为了避免这种窘境发生在ABAPer身上,我们应该做点什么呢? 2017 ...

随机推荐

  1. 24_ajax请求_使用axios

    前置说明: 1.React本身只关注页面,并不包含发送ajax请求的代码 2.前端应用需要通过ajax请求与后台进行交互(json数据) 3.React应用中需要集成第三方ajax库(或自己进行封装) ...

  2. C++中类的多继承

    在写这一主题的文章之前,在网上找到一篇很非常好的文章C++之继承与多态.就没有必要做重复造轮子的事件了,那就从这篇文章开始吧! 在c++中一个类可以从多个基类中派生(即可以有多个父类),这就是多继承. ...

  3. MTIM(中间人攻击)

    所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情. 信息篡改 当主机A.和主机B通信时,都由主机C来为其“转发”,如图一,而A.B之间并没有真正意思上的直 ...

  4. 【剑指offer】从尾到头翻转打印单链表

    #include <iostream> #include <vector> #include <stack> using namespace std; struct ...

  5. lucene solr

    理解 lucene 是一个全文搜索的引擎 solr是全文搜索的web实现 --------------------.  java.lang.UnsupportedClassVersionError:  ...

  6. android开源项目框架大全:

    android开源项目框架大全: 1.多页切换TabHost9 高仿网易云音乐客户端的Home页面切换Tabhost 高仿网易云音乐客户端的Home页面切换Tabhost,并且三角形是透明的,实现方式 ...

  7. HTML 视频

    在html5中使用视频,只要添加元素<video></video>元素表示. <video>有几个属性: src 指定音频文件的路径 poster 视频播放之前显示 ...

  8. 微信小程序 在canvas画布上划动,页面禁止滑动

    要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...

  9. js 中的原型prototype

    每次创建新函数,就会根据规则为该函数创建一个 prototype 属性,该属性是一个指向函数原型对象的指针.并且原型对象都默认拥有一个 constructor 属性,该属性是一个指向那个新建函数的指针 ...

  10. 《xss跨站脚本剖析与防御》实验笔记

    1.书籍<xss跨站脚本剖析与防御>上介绍的xss测试代码 <img src="javascrpt:alert('xss');">, <table b ...