Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7133695
  • 博文数量: 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-03-27 13:53:10

 
v41dugu  发表时间:2008-03-27 09:06:53    

老白你好 .  把图片存到数据库中应该怎样实现? 数据库中的图片是以二进制存在的? 那么和用SE78把图片导入到server上有什么不同呢? 

Blog作者的回复:
可以用簇表,给你写个例子

 
*&---------------------------------------------------------------------*
*& Report  Z_BARRY_CLUSTER_PIC                                         *
*&                                                                     *
*&---------------------------------------------------------------------*
*&  把图片放到簇表,然后取出显示                                       *
*&                                                                     *
*&---------------------------------------------------------------------*
 
REPORT  z_barry_cluster_pic                     .
DATA container TYPE REF TO cl_gui_custom_container.
DATA picture TYPE REF TO cl_gui_picture.
DATA ok_code TYPE sy-ucomm.
DATA subrc TYPE i.
SET SCREEN 100.
 
*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS'.
  PERFORM fill_pic.
ENDMODULE.                             " STATUS_0100  OUTPUT
 
*&---------------------------------------------------------------------*
*&      Module  exit  INPUT
*&---------------------------------------------------------------------*
MODULE exit INPUT.
  CALL METHOD picture->free.
  CALL METHOD container->free.
  LEAVE PROGRAM.
ENDMODULE.                 " exit  INPUT
 
*&---------------------------------------------------------------------*
*&      Form  fill_pic
*&---------------------------------------------------------------------*
FORM fill_pic .
  DATA: url(255) .
  IF container IS INITIAL.
    CREATE OBJECT container
       EXPORTING container_name = 'CUSTOM_CONTAINER'.
    CREATE OBJECT picture
       EXPORTING  parent = container.
    CLEAR url.
    PERFORM load_pic_from_db CHANGING url.
    CALL METHOD picture->load_picture_from_url
      EXPORTING
        url    = url
      IMPORTING
        RESULT = subrc
      EXCEPTIONS
        error  = 1
        OTHERS = 2.
  ENDIF.
ENDFORM.                    " fill_pic
 
*&---------------------------------------------------------------------*
*&      Form  LOAD_PIC_FROM_DB
*&---------------------------------------------------------------------*
FORM load_pic_from_db CHANGING url.
  TYPES pict_line(256) TYPE x.
  DATA  itab_pic TYPE TABLE OF pict_line WITH HEADER LINE .
  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename = 'C:\20.jpg'
      filetype = 'BIN'
    TABLES
      data_tab = itab_pic[].
  EXPORT itab_pic TO DATABASE indx(zz) ID 'Pic' .

  REFRESH itab_pic.
  IMPORT itab_pic FROM DATABASE indx(zz) ID 'Pic' .
  CALL FUNCTION 'DP_CREATE_URL'
    EXPORTING
      type    = 'IMAGE'
      subtype = 'GIF'
    TABLES
      data    = itab_pic[]
    CHANGING
      url     = url.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    EXIT.
  ENDIF.
ENDFORM.                    "load_pic_from_db
阅读(4724) | 评论(7) | 转发(0) |
给主人留下些什么吧!~~

qdbarry2008-03-27 16:20:19

根据我的习惯,能写到Blog的东西都要先测试的

v41dugu2008-03-27 15:59:44

老白你测试过这个程序吗? 可以显示??? 我显示不了. 之后直接拷贝你的代码还是显示不出来 . 图片的 Load和存到 cluster和读取都没问题. 但是最后的CALL METHOD picture->load_picture_from_url 始终不能把图片加载进去.