ABAP通过OLEDB读取本地Access(MDB)文件
来源:互联网 发布:英国约克大学 知乎 编辑:程序博客网 时间:2024/06/08 14:19
*&---------------------------------------------------------------------*
*& Report Z_READ_FROM_ACCESS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_READ_FROM_ACCESS.
INCLUDE ole2incl.
CONSTANTS: provider(40) VALUE 'Provider=Microsoft.Jet.OLEDB.4.0',
security(40) VALUE 'Persist Security Info=False',
datasource(30) VALUE 'Data Source=F:\db1.mdb'.
DATA: o_conn TYPE ole2_object,
o_recordset TYPE ole2_object,
o_field TYPE ole2_object.
DATA: con_str(128) ,sql_str(400).
DATA: BEGIN OF ty_itab OCCURS 0,
mandt LIKE t001-mandt ,
bukrs LIKE t001-bukrs ,
butxt LIKE t001-butxt ,
END OF ty_itab.
DATA: itab LIKE TABLE OF ty_itab WITH HEADER LINE.
START-OF-SELECTION.
PERFORM oledb_open.
PERFORM sql_select.
PERFORM sql_update.
PERFORM sql_close.
*&---------------------------------------------------------------------*
*& Form oledb_open
*&---------------------------------------------------------------------*
FORM oledb_open.
CONCATENATE provider ';' security ';' datasource INTO con_str.
CREATE OBJECT o_conn 'ADODB.Connection'.
SET PROPERTY OF o_conn 'Provider' = provider.
SET PROPERTY OF o_conn 'ConnectionString' = con_str.
CALL METHOD OF o_conn 'Open'.
ENDFORM. "OLEDB_open
*&---------------------------------------------------------------------*
*& Form sql_select
*&---------------------------------------------------------------------*
FORM sql_select .
DATA: rs_eof TYPE i value 1.
sql_str = 'select mandt, bukrs,butxt from TEST_ZTEST'.
CALL METHOD OF o_conn 'Execute' = o_recordset
EXPORTING
#1 = sql_str.
GET PROPERTY OF o_recordset 'EOF' = rs_eof.
REFRESH itab.
WHILE rs_eof NE 1.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 0.
GET PROPERTY OF o_field 'Value' = itab-mandt.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 1.
GET PROPERTY OF o_field 'Value' = itab-bukrs.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 2.
GET PROPERTY OF o_field 'Value' = itab-butxt.
APPEND itab.
CALL METHOD OF o_recordset 'MoveNext'.
GET PROPERTY OF o_recordset 'EOF' = rs_eof.
ENDWHILE.
LOOP AT itab.
WRITE: / itab-mandt,itab-bukrs,itab-butxt.
ENDLOOP.
ENDFORM. "sql_select
*&---------------------------------------------------------------------*
*& Form sql_update
*&---------------------------------------------------------------------*
FORM sql_update .
CONCATENATE 'update TEST_ZTEST set butxt=' '''' 'SAP AG' ''''
' where bukrs=' '''' '2015' '''' INTO sql_str.
CALL METHOD OF o_conn 'Execute' = o_recordset
EXPORTING
#1 = sql_str.
ENDFORM. "sql_update
*&---------------------------------------------------------------------*
*& Form sql_close
*&---------------------------------------------------------------------*
FORM sql_close.
CALL METHOD OF o_recordset 'Close'.
CALL METHOD OF o_conn 'Close'.
FREE OBJECT o_recordset.
FREE OBJECT o_conn.
ENDFORM. "sql_close
*& Report Z_READ_FROM_ACCESS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z_READ_FROM_ACCESS.
INCLUDE ole2incl.
CONSTANTS: provider(40) VALUE 'Provider=Microsoft.Jet.OLEDB.4.0',
security(40) VALUE 'Persist Security Info=False',
datasource(30) VALUE 'Data Source=F:\db1.mdb'.
DATA: o_conn TYPE ole2_object,
o_recordset TYPE ole2_object,
o_field TYPE ole2_object.
DATA: con_str(128) ,sql_str(400).
DATA: BEGIN OF ty_itab OCCURS 0,
mandt LIKE t001-mandt ,
bukrs LIKE t001-bukrs ,
butxt LIKE t001-butxt ,
END OF ty_itab.
DATA: itab LIKE TABLE OF ty_itab WITH HEADER LINE.
START-OF-SELECTION.
PERFORM oledb_open.
PERFORM sql_select.
PERFORM sql_update.
PERFORM sql_close.
*&---------------------------------------------------------------------*
*& Form oledb_open
*&---------------------------------------------------------------------*
FORM oledb_open.
CONCATENATE provider ';' security ';' datasource INTO con_str.
CREATE OBJECT o_conn 'ADODB.Connection'.
SET PROPERTY OF o_conn 'Provider' = provider.
SET PROPERTY OF o_conn 'ConnectionString' = con_str.
CALL METHOD OF o_conn 'Open'.
ENDFORM. "OLEDB_open
*&---------------------------------------------------------------------*
*& Form sql_select
*&---------------------------------------------------------------------*
FORM sql_select .
DATA: rs_eof TYPE i value 1.
sql_str = 'select mandt, bukrs,butxt from TEST_ZTEST'.
CALL METHOD OF o_conn 'Execute' = o_recordset
EXPORTING
#1 = sql_str.
GET PROPERTY OF o_recordset 'EOF' = rs_eof.
REFRESH itab.
WHILE rs_eof NE 1.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 0.
GET PROPERTY OF o_field 'Value' = itab-mandt.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 1.
GET PROPERTY OF o_field 'Value' = itab-bukrs.
CALL METHOD OF o_recordset 'fields' = o_field
EXPORTING
#1 = 2.
GET PROPERTY OF o_field 'Value' = itab-butxt.
APPEND itab.
CALL METHOD OF o_recordset 'MoveNext'.
GET PROPERTY OF o_recordset 'EOF' = rs_eof.
ENDWHILE.
LOOP AT itab.
WRITE: / itab-mandt,itab-bukrs,itab-butxt.
ENDLOOP.
ENDFORM. "sql_select
*&---------------------------------------------------------------------*
*& Form sql_update
*&---------------------------------------------------------------------*
FORM sql_update .
CONCATENATE 'update TEST_ZTEST set butxt=' '''' 'SAP AG' ''''
' where bukrs=' '''' '2015' '''' INTO sql_str.
CALL METHOD OF o_conn 'Execute' = o_recordset
EXPORTING
#1 = sql_str.
ENDFORM. "sql_update
*&---------------------------------------------------------------------*
*& Form sql_close
*&---------------------------------------------------------------------*
FORM sql_close.
CALL METHOD OF o_recordset 'Close'.
CALL METHOD OF o_conn 'Close'.
FREE OBJECT o_recordset.
FREE OBJECT o_conn.
ENDFORM. "sql_close
本文转自老白的ABAP博客
0 0
- ABAP通过OLEDB读取本地Access(MDB)文件
- ABAP通过OLEDB读取本地Access(MDB)文件
- C# 访问win7 64bit 无安装access的mdb文件出现未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”
- abap oledb連access,sql
- [转载]matlab读取Access数据(.mdb文件)
- Access导入MDB文件
- Java读取.mdb文件
- C#操作Access之读取mdb浅析
- C# : ADO.NET 读取 Access mdb
- C#操作Access之读取mdb浅析
- C#操作Access之读取mdb
- Java生成mdb文件[MS Access文件]
- 通过access.oledb连接到excel中
- VC++ 压缩access mdb文件,真实可行,
- java链接ACCESS数据库的MDB文件
- php 访问access mdb文件的类
- 采用OleDB读取EXCEL文件
- 采用OLEDB读取EXCEL文件
- 动态规划之钢条切割问题
- 【2014-06-07】-珠海长隆海底世界
- linux命令点滴
- 面向对象--设计模式
- JavaScript获取地址栏中的参数
- ABAP通过OLEDB读取本地Access(MDB)文件
- 第十四周项目一-动物这样叫(虚函数)
- struts2 防止表单重复提交
- 三层结构
- char a[2]="ab"与 char a[]="ab"的区别
- 最长公共子串(连续)问题
- 面向对象的分析与设计1
- ubuntu下apache+C语言+CGI配置
- 黑马程序员——Java的数据类型