在dw中显示图片

来源:互联网 发布:genecards数据库 编辑:程序博客网 时间:2024/03/29 05:43

图片数据是以blob类型放在数据库中的

1、用picture控件显然不行,因为bitmap要求指定路径!  
  当然,如果每页只显示一个图片用程序脚本可实现!  
      1)读出数据库内blob数据  
      2)写入到窗口中的picture控件  
      3)保存图片到指定的临时文件如aaa.bmp  
      4)在数据窗口中picture的控件指定picturename   =   aaa.bmp  
      总的来说这样还是不太方便  
   
   
  2、用DB   OLE控件可实现,主要还要设置表名、列名、KEY   CLAUSE、OLE   CLASS和CLIENTNAME   expression  
  例如:其中的key   clause则可写id   =   :id  
                      ole   class   则选择   PBrush   画笔图片  
                      classname   expression则写   "object"  
  这里的id指要显示的表相关的ID  
   
   
  建议楼主使用第2种方法

备注:   
  注意图片不要太大,因为保存在数据库中的图片文件读取但对系统性能有影响(如果图片太大),并且使用OLE虽然方便但PB与OLE的兼容性一直受到大家的致疑!     所以所保存的图片不应太大! 

方法一的代码:  
  图片临时存放在图片路径下:  
   
  先读出来的  
  blob     emp_id_pic  
   
  SELECTBLOB   picture  
  INTO     :emp_id_pic  
  FROM   scanimg  
  WHERE   picID   =   :sz_PicID  
  USING   SQLCA   ;  
   
  在临时写入一个路径下:  
  如:  
   
  ll_filelen=len(emp_id_pic)  
  setnull(emp_id_pic)  
  emp_id_pic=as_blob  
   
  ls_server_path="d:/ls"   //临时存放的图片路径  
   
  ls_downfile=ls_server_path  
   
  //计算读文件的次数,不能一次大于32K的数据  
  if   ll_filelen>32766   then    
  if   mod(ll_filelen,32766)=0   then    
  li_loops=ll_filelen/32766  
  else  
  li_loops=(ll_filelen/32766)   +   1  
  end   if  
  else  
  li_loops=1  
  end   if  
  ls_filename=mid(ls_filename,4,len(ls_filename))  
   
  //写文件  
  li_FileNum   =   FileOpen(ls_downfile,StreamMode!,   Write!,   Shared!,   Append!)  
  ll_bytes_read=FileWrite(li_FileNum,emp_id_pic)  
     
  for   li_counter=2   to   li_loops  
        ll_new_pos=ll_bytes_read*(li_counter   -   1)   +   1  
  ll_new_pos=ll_bytes_read*li_counter  
   
  data_ls   =   BlobMid(emp_id_pic,ll_bytes_read*(li_counter   -   1)   +   1,ll_bytes_read*li_counter)  
        ll_new_pos=FileWrite(li_FileNum,data_ls)  
   
  next  
  fileclose(li_filenum)  
   
  //最后  
  dw_1.object.p_1.Filename='d:/ls/temp.bmp'   
  字段值应为全路径名:如:c:/mydocu~1/mypict~1/1.bmp  
  图片格式:仅能用BMP  
  路径名:DOS   8。3格式
任意控件,在general页选取display   as   picture 

原创粉丝点击