dw_1中添加了一个picture图片控件,怎样把数据库中的图片经过控件显示出来

hhk600 2013-11-21 03:09:26
dw_1中添加了一个picture图片控件,怎样把数据库中的图片经过控件显示出来?
数据库是oracle,利用以下语句:
selectblob photo into :lb_pict from cark_pic where empindex=:a;
p_1.setpicture(lb_pict)

如果P_1是在dw_1 的外面则可以显示数据库里面的图片
如果是在dw_1里面则无法显示图片

请教各位高手怎么解决,谢谢了。
...全文
749 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhg24 2014-03-14
引用 9 楼 sdhp 的回复:
试了一下你的程序,是可以显示图片的 我猜测会不会是文件后缀名的问题,比如你数据库存的是bmp格式,存成的临时文件是jpg或者反过来
谢谢这位兄弟,我把输出图片格式换成ipg就可以显示了!!
回复
zhg24 2014-03-14
比较了下pb下生成的bmp文件和经windows转存后的bmp文件,pb下生成的bmp文件仅2.87k,而经windows转存后的bmp文件有51.3k,估计问题就出在这里了
回复
zhg24 2014-03-14
引用 9 楼 sdhp 的回复:
试了一下你的程序,是可以显示图片的 我猜测会不会是文件后缀名的问题,比如你数据库存的是bmp格式,存成的临时文件是jpg或者反过来
我导入的源图片文件为ipg格式,从数据库输出的临时文件格式为bmp,输出的bmp文件在操作系统下显示、操作正常。但在pb里面无法预览,也无法显示。试了下,将该bmp文件在windows下用画板工具另存成jpg或者是bmp都能正常在pb里面显示 。另外我保存在数据库的文件输出的blob变量,赋值给窗口下的picture下可以正常显示的。想来是不是转换成临时图片文件时有什么问题,大家能帮忙分析下吗?
回复
sdhp 2014-03-13
试了一下你的程序,是可以显示图片的 我猜测会不会是文件后缀名的问题,比如你数据库存的是bmp格式,存成的临时文件是jpg或者反过来
回复
zhg24 2014-03-13
引用 1 楼 smilysoft 的回复:

给你个思路,把图片从数据库读取出来后,先保存到本地磁盘某个路径,然后在设置DW_1的图片空间的路径为该路径。
可以用FileOpen(),FileWrite()处理图片文件。
dw_1.modify("p_1.filename = '" + gs_cDir + "\picture\all.jpg'")
我做了smilysoft 兄弟类似的步骤,将生成的本地bmp临时文件,在windows里面看以查看预览,但怎么就不能在pb里面显示出来呢,用画板将生成的文件转存成jpg又可以显示出来了,搞不清楚,smilysoft兄弟可以帮忙分析下原因吗? ls_rynum = FileOpen( ls_picname, StreamMode!, Write!, Shared!,Replace!) if ls_rynum<0 then messagebox("错误","创建相片文件时发生错误") return end if n=len(ls_pic)/32765+1 for i=1 to n start=(i - 1)*32765+1 temp=blobmid(ls_pic,start,32765) if isnull(temp) or temp=blob('') then exit end if ret=FileWrite(ls_rynum, temp) IF ret <0 THEN messagebox("错误","写相片文件时发生错误") fileclose(ls_rynum) return end if next fileclose(ls_rynum) ls_picpath=ls_runpath+'\'+ls_picname tab_1.tabpage_1.dw_1.modify("p_1.filename='"+ls_picpath +"'") 十分感谢!
回复
superbigboy 2014-01-11
用计算列调用bitmap函数,别用控件
回复
qianfl 2013-12-27
是dw把p_1挡住了?
回复
ppmht 2013-12-21
使用 oleblob 字段
回复
fm20027 2013-11-22
就是如1#所说,DW中的图片就得这样处理,为了不在你的磁盘中保留这个图片,你只好在关闭这个窗口时用脚本将图片删除。
回复
hhk600 2013-11-21
楼上的高手,思路是可以,也可以实现,但这样一来,相当于把图片放在硬盘里面了,如果这样的话,之前就没有必要保存在数据库里面了,因为我做的是员工管理系统,开始先往数据库添加员工信息和图片,过后要读取出来方便查询。
回复
zhangyangziwo 2013-11-21
是啊, 先将文件下载到程序路径里的temp文件夹内, 然后用相对路径\temp\1.jpg就能显示文件啦。
回复
PB菜鸟 2013-11-21

给你个思路,把图片从数据库读取出来后,先保存到本地磁盘某个路径,然后在设置DW_1的图片空间的路径为该路径。
可以用FileOpen(),FileWrite()处理图片文件。
dw_1.modify("p_1.filename = '" + gs_cDir + "\picture\all.jpg'")
回复
相关推荐
发帖
数据库相关
创建于2007-09-28

734

社区成员

PowerBuilder 数据库相关
申请成为版主
帖子事件
创建了帖子
2013-11-21 03:09
社区公告
暂无公告