当前位置: 代码迷 >> PB >> 请教怎么实现“非OLE方式存在数据库中的图片显示在数据窗口中”
  详细解决方案

请教怎么实现“非OLE方式存在数据库中的图片显示在数据窗口中”

热度:113   发布时间:2016-04-29 09:57:33.0
请问如何实现“非OLE方式存在数据库中的图片显示在数据窗口中”?
现有的数据库中的图片是用insert方式插进去数据库的,想显示在数据库窗口中并打印出来,请问如何处理?谢谢各位!

------解决方案--------------------
参考一下:

string ll_no
Blob lb_pic,lb_write
Long ll_length
Int li_c,li_i,li_fileNum,li_qs,li_len,li_mod
string ls_filename
Blob lb_pic1,lb_write1
Long ll_length1
Int li_c1,li_i1,li_fileNum1,li_qs1,li_len1,li_mod1
string ls_filename1


//取数据库中的Blob照片
selectblob picture
into :lb_pic
from t_health
where no = :ll_no;


ll_length = Len(lb_pic)
IF ll_length <1 THEN RETURN

li_c = ll_length/32765
li_mod = Mod(ll_length,32765)
IF li_mod> 0 THEN li_c++

ls_filename = "bbb.jpg " //图片的临时文件
li_FileNum = FileOpen(ls_filename,StreamMode!,write!,lockWrite!,replace!)
FOR li_i=1 to li_c
li_qs = (li_i - 1) * 32765 + 1
IF li_i <li_c THEN
li_len = 32765
ELSE
li_len = li_mod
END IF
lb_write = blobmid(lb_pic,li_qs,li_len)
FileWrite(li_fileNum,lb_write)
NEXT
fileclose(li_filenum)
dw_1.modify( "p_1.filename= 'bbb.jpg ' ") //显示数据窗口中的图片


你可以在窗口的close事件中删除临时的图片文件
string ls_filename
ls_filename = "bbb.jpg "
Filedelete(ls_filename)
------解决方案--------------------
insert方式插进去数据库的也可以用database ole object显示出来,
没区别的。
  相关解决方案