DBCO
实现SAP连接外部数据库
也可用SM30维护DBCON的内容
SAP提供了对原生sql的操作,主要有以下几个类组成:
- CL_SQL_STATEMENT - Execution of SQL Statements
- CL_SQL_PREPARED_STATEMENT - Prepared SQL Statements
- CL_SQL_CONNECTION - Administration of Database Connections
- CX_SQL_EXCEPTION - Exception Class for SQL Error
还会用到:
- CL_SQL_RESULT_SET- Resulting Set of an SQL Query
- CX_PARAMETER_INVALID- Superclass for Parameter Error
示例代码:
FUNCTION xxx.
TYPES: BEGIN OF t_sp_test,
a TYPE char10,
END OF t_sp_test,
t_sp_test_tab TYPE TABLE OF t_sp_test.
DATA: lt_sp_test TYPE t_sp_test_tab,
ls_sp_test TYPE t_sp_test.
DATA: lv_root_message TYPE string.
DATA: lv_sql_message TYPE string.
DATA: lv_param_message TYPE string.
DATA: lr_cxsql TYPE REF TO cx_sql_exception.
DATA: lr_cxpar TYPE REF TO cx_parameter_invalid.
DATA: l_con_ref TYPE REF TO cl_sql_connection.
DATA: l_stmt_ref TYPE REF TO cl_sql_statement.
DATA: l_res_ref TYPE REF TO cl_sql_result_set.
DATA: lv_stmt TYPE string.
DATA: l_dref TYPE REF TO data,
ncount TYPE i,
l_error TYPE c.
result = 0.
TRY.
CALL METHOD cl_sql_connection=>get_connection
EXPORTING
con_name = dbconn
RECEIVING
con_ref = l_con_ref.
CATCH cx_sql_exception INTO lr_cxsql.
result = 1.
lv_root_message = lr_cxsql->get_text( ).
lv_sql_message = lr_cxsql->sql_message.
CONCATENATE msg lv_root_message lv_sql_message INTO msg SEPARATED BY '/'.
EXIT.
ENDTRY.
IF result <> 1.
LOOP AT sql INTO lv_stmt.
CALL METHOD l_con_ref->create_statement
RECEIVING
stmt_ref = l_stmt_ref.
TRY.
CALL METHOD l_stmt_ref->execute_update
EXPORTING
statement = lv_stmt
RECEIVING
rows_processed = ncount.
CATCH cx_sql_exception INTO lr_cxsql.
result = 1.
lv_root_message = lr_cxsql->get_text( ).
lv_sql_message = lr_cxsql->sql_message.
CONCATENATE msg lv_root_message lv_sql_message INTO msg SEPARATED BY '/'.
EXIT.
CATCH cx_parameter_invalid INTO lr_cxpar.
result = 1.
lv_root_message = lr_cxpar->get_text( ).
lv_param_message = lr_cxpar->parameter.
CONCATENATE msg lv_root_message lv_sql_message INTO msg SEPARATED BY '/'.
EXIT.
ENDTRY.
ENDLOOP.
ENDIF.
IF result = 1.
CALL METHOD l_con_ref->rollback.
ELSE.
CALL METHOD l_con_ref->commit.
ENDIF.
GET REFERENCE OF ls_sp_test INTO l_dref.
IF dbconn <> 'DEFAULT'.
CALL METHOD l_con_ref->close.
ENDIF.
ENDFUNCTION.
- Import
- DBCONN TYPE C
- Export
- RESULT TYPE I
- MSG TYPE BAPI_MSG
- Tables
- SQL
DBCO的更多相关文章
- 【ABAP系列】SAP 使用事务码DBCO实现SAP链接外部数据库以及读取例程
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 使用事务码DBCO实现S ...
- .数据库连接池技术:DBCP和C3P0
数据库连接池技术:DBCP和C3P0 1.什么是数据库连接池 已知的方法是需要访问数据库的时候进行一次数据库的连接,对数据库操作完之后再释放这个连接,通常这样业务是缺点很明显的: 用户每次请求都需要向 ...
- Mosquitto pub/sub服务实现代码浅析-主体框架
Mosquitto 是一个IBM 开源pub/sub订阅发布协议 MQTT 的一个单机版实现(目前也只有单机版),MQTT主打轻便,比较适用于移动设备等上面,花费流量少,解析代价低.相对于XMPP等来 ...
- SAP技术相关Tcode
ABAP的常用tcode 开发----------------------------------------------- SE51 屏幕制作 SE91 MESSAGE OBJECT SE80 ...
- SAP连接HANA数据库
既然都用HANA了,为什么还要在SAP端,连接HANA数据库,做数据库处理..... 因为HANA数据库,没个用户在STADIO上建的数据库表...只能这个用户使用,而做Universe 设计的时候, ...
- ABAP知识点提纲
编号 课程名称 课程内容 预计课时 10.1.1~10.1.2 SAP系统与产品集 1. 了解SAP常见产品 ,了解SAP系统架构 1 10.1.3~10.1.4 导航界面与用户界面 1. 了解SAP ...
- SAP R/3系统的R和3分别代表什么含义,负载均衡的实现原理
1972年,SAP诞生,推出了RF系统(实时财务会计系统), 后来命名为R1. R指Real time.3既指第三代系统,又代表3层架构. 三层架构分别为下图的Presentation server ...
- SAP系统接口方式:
SAP系统接口方式: 1.PI - 信使中间件 (大公司多选择) 数据: SAP- PI- U8 U8- PI- SAPPI 底层用的还是webservice 技术优点:实时性高: 可处理大数据(在调 ...
- ABAP常用事务码
开发----------------------------------------------- SE51 屏幕制作 SE91 MESSAGE OBJECT SE80 对象浏览器(可以建开发类 ...
随机推荐
- js 引入外部文件之 script 标签
在我的理解看来,html 就是一个单纯的管显示问题,js就是单纯的管动作问题,css就是单纯的管布局问题,这三个构成了一个网页 在HTML中,经常会用到引入js 文件. 引入js的方法很简单: 1. ...
- linux 一种小的性能优化手段
在编写内核模块的过程中,我们经常会创建percpu的hash表,比如定义结构如下: struct A { int a: int b: struct hlist_node hlist_node;-- ...
- 记一个pg连接数过多的异常
java中使用数据库连接池,如果在部署的时候,操作不慎,可能出现典型的连接池爆满的问题 org.postgresql.util.PSQLException: FATAL: sorry, too man ...
- Learn English like a Baby – How to Sound Native
Learn English like a Baby – How to Sound Native Share Tweet Share Tagged With: tips & tricks Wha ...
- Linux性能测试分析命令_top
top命令动态展示系统整体资源和各个进程资源占用状况,是Linux下常用的性能分析工具. top命令语法 使用格式:top [-] [d] [b] [H] [p] [q] [c] [C] [S] [s ...
- 遍历DOM树,过滤节点
jQuery还提供以下方法来过滤节点. 方法 说明 first() 获取第一个,示例 $('li').last() last() 获取最后一个,示例$('li').last() eq() ...
- C# 计算接口调用时长
//获取 接口的数据 Stopwatch sw = new Stopwatch();//计算耗时 sw.Start();fn1();//接口调用方法 sw.Stop();return JsonMsg. ...
- 2018面向对象程序设计(Java)第4周学习指导及要求
2018面向对象程序设计(Java) 第4周学习指导及要求(2017.9.19-2017.9. 26) 学习目标 掌握类与对象的基础概念,理解类与对象的关系: 掌握对象与对象变量的关系: 掌握预定 ...
- 新手如何学习Java——Java学习路线图
推荐初学者阅读:新手如何学习Java——Java学习路线图
- opencv 学习笔记
Opencv 笔记 路径问题: 路径输入:Opencv载Qt中不能出现汉字,路径也不能出现汉字在vs中可以出现. (”D:/QTopencv/.1jpg”)=(”D:\\QTopencv\\.1jpg ...