Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7137715
  • 博文数量: 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
阅读(7055) | 评论(20) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-28 10:11:23

我就是7楼的朋友,呵呵,IP怎么变了,大概因为上次用的代理。

chinaunix网友2008-11-28 10:09:10

老白大哥,这次我好奇来了,所以自己用Delphi做了个简单的OCX希望在SAP中用,也看到你的那个“指示灯程序”。 回看这个OLEDB的例子,用的是“ADODB.Connection”这个东东,纳闷的是,为什么我用SOLE中看不到呢,至于EXCEL.APPLICATION等等是有的。 你的这个范例我也在SAP跑起来的,一切正常。 另外,如果自己写的ocx,应该是在SOLE中添加的时候,根据clsid把当前的客户端中OCX上传到服务器咯?然后其他客户端用程序的时候就会自动download?(就像HTML一样) 请教你的理解是怎样的,谢谢! 你的blog做的不错!

chinaunix网友2008-09-25 15:46:52

我也有测试,但是一运行就没停下来,我就把它SHUT了

qdbarry2008-09-24 17:01:52

:)

chinaunix网友2008-09-24 16:02:37

谢谢,老白大哥,现在可以联接了。这个程式可以举一反三,受益非浅,再次谢谢。