首页 > 数据库 >在 ABAP 层执行 Open SQL 的幕后操作 - 武侠版

在 ABAP 层执行 Open SQL 的幕后操作 - 武侠版

时间:2023-05-18 12:22:20浏览次数:44  
标签:OPEN 数据库 事务处理 查询 ABAP SQL Open

在ABAP系统中使用事务码编写OPEN SQL向数据库发起查询时,应用层和数据库层之间会发生一系列的交互。让我们详细介绍这个过程,并结合下面这张 ABAP 三层架构图:
在这里插入图片描述

  1. 用户触发事务码:
    用户在ABAP系统中输入事务码,比如SE38(ABAP编辑器)或SE11(数据字典),并按下回车键。这将触发ABAP系统在应用层执行相应的事务处理。

  2. 事务处理的开始:
    当事务码被触发后,ABAP系统开始执行相应的事务处理逻辑。这包括处理用户输入、验证数据、调用相应的函数模块、方法或类等。

  3. 编写OPEN SQL查询:
    在事务处理逻辑中,开发人员编写OPEN SQL查询语句。OPEN SQL是ABAP语言的一种特殊语法,它允许在ABAP应用程序中直接向关系型数据库发送SQL查询。

  4. SQL解析和优化:
    当OPEN SQL查询被执行时,ABAP系统将解析查询语句并生成相应的SQL命令。然后,数据库优化器将对SQL命令进行优化,确定最佳的查询执行计划。

  5. 数据库连接:
    ABAP系统通过数据库连接池与底层数据库建立连接。数据库连接池是一组预先创建的数据库连接,可以重复使用以提高性能和效率。ABAP系统从连接池中获取一个可用的连接与数据库通信。

  6. 数据库请求传输:
    ABAP系统通过已建立的数据库连接将SQL命令传输到数据库服务器。这涉及将SQL命令封装成数据库可以理解的格式,并通过网络协议发送给数据库服务器。

  7. SQL执行和数据处理:
    数据库服务器接收到SQL命令后,执行相应的查询操作。它会读取、更新或删除数据库中的数据,并将结果返回给ABAP系统。

  8. 数据传输:
    数据库服务器将查询结果封装成适当的格式,并通过网络协议将数据传输回ABAP系统。

  9. 数据处理和展示:
    ABAP系统接收到数据库返回的查询结果后,对数据进行处理和转换,以适应应用程序的需求。开发人员可以使用结果集进行进一步的计算、转换或展示。

  10. 事务处理的完成:
    一旦数据被处理和展示,事务处理过程完成。ABAP系统可能会执行后续的逻辑,例如提交事务或回滚事务。

总结起来,当在ABAP系统中使用事务码编写OPEN SQL向数据库发起查询时,应用层负责解析和执行查询,并通过数据库连接与数据库服务器进行通信。数据库服务器负责接收和处理SQL命令,并返回查询结果。这种应用层和数据库层之间的交互使得ABAP系统能够与底层数据库进行有效的数据交互和操作。

上述介绍的武侠版:

那时,在ABAP的江湖里,一位勇敢的开发者挥舞着键盘,触发着事务码的咒语。他的手指在键盘上跳跃,犹如江湖剑客舞动着刀剑,开启了一场应用层和数据库层的纷争。

事务处理的旗帜在ABAP的天空中升起,纷飞的代码随之而来。在这场纷争的核心,开发者运筹帷幄,编写OPEN SQL的战书。这是一种特殊的武艺,让他可以直接向数据库发起查询的挑战。

SQL语句如潮水般涌现,被纳入系统的怀抱。它们被解析,优化,然后转化成无形的剑气。数据库优化器展现了它的身手,决定了最佳的查询计划,如同武林中的绝学。

随后,ABAP的使者与数据库建立了纽带。数据库连接池成了他们的武器库,提供了可重复使用的连接,为纷争增添了一份高效与快速。一根根连接之线被拉起,链接着江湖与山河。

纷争进入高潮,SQL命令腾空而起,穿越了时空的屏障。它们化作电光,穿越网络的长空,奔向数据库的世界。那里,一位高手静待着,他接收命令,执剑行刺。

刹那间,数据库内部燃起了熊熊烈火。数据被揭示,被改写,被删除,如同江湖中的英雄传说。那位高手,数据库的守护者,将数据的命运牢牢把握在手中,诉说着它们的故事。

胜负已分,结果如风从数据库传回。ABAP的使者捧着这些珍贵的战果,带回了自己的世界。数据经过处理和转换,为江湖中的人们所用。它们如同虚实交错的奇珍异宝,经过开发者的巧手,展现出不同的光芒。

纷争结束,事务处理告一段落。ABAP的江湖中响起了胜利的欢呼声。这位勇敢的开发者,可能还会继续后续的挑战,提交或者回滚,如同江湖中的招式。然而,他心知肚明,这场纷争只是江湖中的一小朵浪花,新的挑战即将来临。

标签:OPEN,数据库,事务处理,查询,ABAP,SQL,Open
From: https://www.cnblogs.com/sap-jerry/p/17411573.html

相关文章

  • 面向对象设计里引入 Friend 是对封装性的破坏吗,friend 在 SAP ABAP 里的应用场景
    笔者的SAP技术交流群里,有朋友提问:我想问一个很基础的问题,为什么类要有friend啊反正我工作这些年,在SAP生产代码里没用过友元,只是在生产代码的单元测试代码里用过,原因也就是让单元测试代码能够访问到被测试的生产类的私有属性。代码如下:SAPABAP的帮助文档:在面向对象......
  • mysql代理技术
    文章目录mysql数据库代理技术代理简介名词功能产品图示mysql数据库代理技术代理简介名词DBproxy数据库中间件功能读写分离:读写分离导致处理速度迅速,一般情况下是主服务器进行写操作而从服务器进行读操作负载均衡支持数据的分片自动路由和聚合产品MySQLproxy是MySQL官方产品......
  • 在.net6 使用opencvsharp4 在ubuntu arm64环境下遇到的问题
    rk3399Pro嵌入式板子在.net6中使用opencvsharp开发时,在windows平台可以正常运行,在ubuntu20.6,arm64架构下运行报错:unhandledexception.system.typeinitializationexception:thetypeinitializerfor'opencvsharp.internal.nativemethods'threwanexception.%0d%0a......
  • 【泛微】流程节点时效统计SQL
    selectrb.requestid,rb.`REQUESTNAME`,r2.LASTNAME,c.isremark,cast(CONCAT(RECEIVEDATE,'',RECEIVETIME)asdatetime)'接收时间',cast(CONCAT(OPERATEDATE,'',OPERATETIME)asdatetime)'处理时间',cast(CONCAT(firstviewdate,&#......
  • MySQL免密登录操作
    vi/etc/my.cnf添加到配置文件里面放在[mysqld]下面[mysqld]skip-grant-tables重启服务systemctlrestartmysql登录:mysqlmysql>updatemysql.usersetpassword=password('root')whereuser='root'andhost='localhost';再次回到/etc/my.cnf把刚才添加的......
  • OpenHarmony Docker移植实践
      Docker简介从操作系统诞生之日起,虚拟化技术就不断的演进与发展,结合目前云原生的发展态势,容器无疑是其中的重要一环。Docker是一个开源的软件项目,可以在Linux操作系统上提供一层额外的抽象,让用户程序部署在一个相对隔离的运行环境,并提供自动管理机制。需要额外指出的是......
  • BFT 最前线 | WPS AI接入四大办公软件;OpenAI准备开源新模型;OpenAI CEO首次出证国会;百
    原创|文BFT机器人AI视界TECHNOLOGYNEWS01WPSAI宣布接入文字、表格、PPT、PDF四大办公软件,AI能力大升级5月16日,金山办公旗下人工智能应用WPSAI,宣布四大办公组件全面升级:包括文字、表格、PPT和PDF,相比4月只有文字组件升级,这次升级涵盖了更广范围,并展示了WPSAI在阅读理解和人......
  • java opencv配置环境变量
    javaopencv配置环境变量Windows开发环境:1、下载路径:opencv官网下载文件,解压,我这里用的版本是3.4.16。2、解压后opencv\build\java\x64目录下的opencv_java3416.dll文件拷到C盘的system32下,opencv\build\java下面的opencv-3416.jar文件复制到本地D盘,新建lib文件夹里面,可以直接通......
  • MySQL在Linux中的安装
    MySql安装1、下载mysql安装包再mysql官方下载安装包2、删除依赖包#查找依赖包rpm-qa|grepmysqlrpm-qa|grepMySQLrpm-qa|grepmariadb#删除查询到的依赖包rpm-e--nodepsmariadb-libs-5.5.68-1.el7.x86_643、安装mysql#将安装包上传到linux中mysq......
  • 第一章 MySQL体系结构和存储引擎
    1.1定义数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合实例:MySQL数据库由后台线程以及一个共享内存区组成在MySQL数据库中,实例与数据库的关系通常是一一对应的,即一个实例对应一个数据库,一个数据库对应一个实例MySQL数据库实例在系统上的表现就是一个进程MySQL......