Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7203105
  • 博文数量: 655
  • 博客积分: 10264
  • 博客等级: 上将
  • 技术积分: 8278
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-04 17:47
个人简介

ABAP顾问

文章分类

全部博文(655)

文章存档

2017年(2)

2014年(8)

2013年(3)

2012年(2)

2011年(18)

2010年(102)

2009年(137)

2008年(274)

2007年(134)

分类:

2008-07-29 20:11:04

文件: db1.rar(例程所用Access数据库)
大小: 6KB
下载: 下载

 

  REPORT  Z_BARRY_TEST_MDB2.

INCLUDE ole2incl.

CONSTANTS: provider(40)  VALUE 'Provider=Microsoft.Jet.OLEDB.4.0',
           security(40)  VALUE 'Persist Security Info=False',
           datasource(30VALUE 'Data Source=D:\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).
DATABEGIN 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.

  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=' '''' '2005' '''' 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
阅读(7197) | 评论(20) | 转发(0) |
给主人留下些什么吧!~~

csdmzw2015-02-03 09:53:58

我调试, 打开,ABAP调试显示ADO连接是成功的, HANDLE存在, 但是打开DATASET时, 是空值,这一般是啥问题?

chinaunix网友2010-09-02 08:42:58

其实没必要注册,即便是自己写的OLE也不用注册,直接使用即可

chinaunix网友2010-08-31 14:21:33

是不是因为 SAP GUI 本身就是用 Access 文件做为本地记录缓存,这必然要用到 ADODB,因此就没必要在 SOLE 里再注册了呢?

qdbarry2008-12-25 12:21:50

Sorry,没有环境,不能帮你了

wusj5212008-12-24 22:55:34

老白大哥,我测试这个程序通过了。但我现在想用abap读 paradox的数据库*.DB的文件.测试的多次没有成功.请指点