hur.cn - 华软网

 热门搜索

怎样把sql server数据库中的图片显示在数据窗口中?跟贴有分!!!!!!!!

  作者:未知    来源:网络    更新时间:2019/1/25
数据库:sql server 2000

表:t_employee

字段: emp_id varchar(10),photo image

数据窗口dw_total:composite类型,其中有3个子数据窗口,分别为dw_1,dw_2,dw_3

dw_2对应t_employee,在dw_2中有一图片p_1,现在想在查询的时候把对应emp_id的photo显示在dw_total
中.

该怎样做????

初学PB,谢谢大家.

跟帖有分!!!


------华软网友回答------
//掏出图片资料
selectblob photo into:lb_image from t_employee where emp_id=:ls_parm using sqlca ;

把图片从数据库中掏出之后,该怎样才能把图片放到数据窗口中的p_1中?
------华软网友回复------
picturecontrol.SetPicture ( bitmap )
------华软网友回复------
1.用DW的BLOB字段;
2.用楼上的SETPICTURE函数;
3.设置字段属性为DISPLAY AS PICTURE;
详细能够搜索一下历史帖子;
------华软网友回复------
此外PB自带的CODE EXAMPLE中有很多此类例子能够参照
------华软网友回复------
balloonman2002() 
--------------------------------------------------
能不能运用间接地方法:
1)从库中读出图片的数据
2)将数据写入一个临时图片中,如c:\abc.bmp
3)dw_1.object.p_1.filename="c:\abc.bmp"

注意:用写方式打开临时图片,并采取笼罩方式写入,写完之后一定要关闭资料。

2步我不会做?怎么做?

------华软网友回复------
integer li_FileNum

blob emp_id_pic

SELECTBLOB salary_hist
INTO  : emp_id_pic
FROM Employee
WHERE Employee.Emp_Num = 100
USING Emp_tran;

li_FileNum = FileOpen( &
"C:\EMPLOYEE\EMP_PICS.BMP", &
StreamMode!, Write!, Shared!, Replace!)

FileWrite(li_FileNum, emp_id_pic)

当图片巨细超过 32,766 字节时需要循环写,参照下文:

************************************************

////wf_writefile(lbb_pic,'C:\temp.bmp')
long ll_filesize,ll_loops,ll_remain
int li_filenum,i
blob lb_block

ll_filesize = len(ab_picdata)
////打开资料
li_filenum = fileopen(as_filename,StreamMode!, Write!, LockWrite!, Replace!)

if ll_filesize>32765 then
if mod(ll_filesize,32765)=0 then
ll_loops=ll_filesize/32765
else
ll_loops=ll_filesize/32765
ll_remain = mod(ll_filesize,32765)
end if
else
ll_loops=1
end if

for i=0 to ll_loops - 1
lb_block = blobmid(ab_picdata,i*32765+1,32765)
filewrite(li_filenum,lb_block)
next

//将尾部数据写入资料
if ll_remain > 0 then 
lb_block = blobmid(ab_picdata,ll_loops*32765+1,ll_remain)
filewrite(li_filenum,lb_block)
end if 


fileclose(li_filenum)

************************************************

详见:

http://dev.wl668.com/pb/DataWindow/20055265804_3928431.shtml

http://community.csdn.net/Expert/topic/5072/5072231.xml?temp=.6176721

------华软网友回复------
结果出来了,顶一下。
------华软网友回复------
┌──┐
  │继续│                         ╭───────╮
 └──┘   ┏━━━━━━━┓   │  既然有分,  │
  ┏┓  ┏┫    |||┣┓∠   这贴就顶了  │
  ┣┫  ┗┫━━ ┃ ━━┣┛ ╰───────╯
┏┳┫┣┳┓ ┃ ━━━━━ ┃
┃    ┃ ┗━━━┳━━━┛
┗━━━━┻━━━━▇▇▇┛ ()000o
          ┃  ┃   (````)
          ┃  ┃   )``/
          ┛  ┗━━(__/

------华软网友回复------

⊙⌒⊙
 ∨
------华软网友回复------
┌──┐
  │继续│                         ╭───────╮
 └──┘   ┏━━━━━━━┓   │  既然有分,  │
  ┏┓  ┏┫    |||┣┓∠   这贴就顶了  │
  ┣┫  ┗┫━━ ┃ ━━┣┛ ╰───────╯
┏┳┫┣┳┓ ┃ ━━━━━ ┃
┃    ┃ ┗━━━┳━━━┛
┗━━━━┻━━━━▇▇▇┛ ()000o
          ┃  ┃   (````)
          ┃  ┃   )``/
          ┛  ┗━━(__/
------华软网友回复------
balloonman2002() 
-------------------------------------
照旧没有解决:我把代码和毛病信息贴出来,看看是什么原因酿成的?
代码

string ls_parm
ls_parm=message.stringparm
///////////////////////////////////////////////////////

blob lb_image,lb_block
integer li_fileno,li_writes
string ls_path
long ll_filesize,ll_loops,ll_remain
int li_filenum

//////////////////////////////////////////////////////////

dw_1.settransobject(sqlca)
dw_1.retrieve(ls_parm)

//掏出图片资料
selectblob photo into:lb_image from t_employee where emp_id=:ls_parm using sqlca ;

ll_filesize = len(lb_image)
////打开资料
li_filenum = fileopen('pic\temp.jpg',StreamMode!, Write!, LockWrite!, Replace!)

if ll_filesize>32765 then
if mod(ll_filesize,32765)=0 then
ll_loops=ll_filesize/32765
else
ll_loops=ll_filesize/32765
ll_remain = mod(ll_filesize,32765)
end if
else
ll_loops=1
end if
//
for i=0 to ll_loops - 1
lb_block = blobmid(lb_image,i*32765+1,32765)
filewrite(li_filenum,lb_block)
next

//将尾部数据写入资料
if ll_remain > 0 then 
lb_block = blobmid(lb_image,ll_loops*32765+1,ll_remain)
filewrite(li_filenum,lb_block)
end if 


//显示图片资料
ls_path="pic\temp.jpg"


code=dw_1.getchild('dw_2',child)
child.settransobject(sqlca)


child.modify("p_1.filename ='"+ls_path+"'")


fileclose(li_filenum)
----------------------------------------------------------------------
提醒毛病:
not a jpeg file: start with 0*42 0*4d

而且作为临时资料的temp.jpg也改变了.


------华软网友回复------
图片路径毛病,请确认pic资料夹是否已经建立,或 '.\pic\temp.jpg'
------华软网友回复------
找到原因了,多谢大家帮助,结贴了。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。