CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  DataWindow

数据窗口中为什么不能直接显示数据库中的图形字段?

楼主happyscaiyu(酸菜鱼)2003-06-02 19:36:48 在 PowerBuilder / DataWindow 提问

我在datawindow里用ole能够读取数据库中的*.jpg文件,但不能直接显示,只显示jpg图标。若想显示,只能通过双击该图标,打开画笔程序或Acdsee显示该图形。请问各位高手,怎样直接显示数据库中的图形? 问题点数:50、回复次数:8Top

1 楼tuliplangel(开心最重要)回复于 2003-06-02 19:59:22 得分 5

Activate   (InPlace!   )可以显示Top

2 楼joss(季节...夏至)回复于 2003-06-02 20:01:35 得分 5

这人问题可以查看PB自带例子,估计你的设计有不对地方,可以显示图片文件的!  
  应当选择database   ole   objectTop

3 楼happyscaiyu(酸菜鱼)回复于 2003-06-02 20:09:39 得分 0

我用的是数据窗口中的ole   database   blob控件。可以通过双击blob小图框激活ole服务器,也就是通过打开windows画笔打开图形。我现在想直接在数据窗口中显示图形,而不通过双击图标打开其它应用程序来显示。  
  谢谢大家的热心,请继续帮助我解决这个问题!Top

4 楼happyscaiyu(酸菜鱼)回复于 2003-06-02 20:27:30 得分 0

tuliplangel(酷儿)   ,请你说得详细些好吗?Top

5 楼nolight(nolight)回复于 2003-06-03 10:08:27 得分 5

tuliplangel(酷儿)   讲的方法我没试过。  
  我曾经不得已这样做的,  
  读出image字段内容,存为本机temp.jpg,dw里一个image控键,指向temp.jpgTop

6 楼happyscaiyu(酸菜鱼)回复于 2003-06-03 10:48:14 得分 0

nolight(nolight)  
  这样做能在数据窗口中直接显示图形吗?  
  就像在dw中加一个picture控件一样?Top

7 楼nolight(nolight)回复于 2003-06-03 14:46:54 得分 35

是的。  
  DW中picture控键]名为photo,   一个人事系统,显示每个人员的照片  
  employee:id,name,photo,  
  retrieve人员资料后,调用窗口函数,  
  窗口函数wf_showpic代码如下:  
  =======================================  
  Blob Emp_id_pic,b_tmp  
  STRING   str1  
  INTEGER   li_FileNum  
  LONG   ll_loop,ll_loopnum,ll_len  
   
  str1   =   dw_employee.object.id[1]  
  SELECTBLOB   photo  
  INTO   :Emp_id_pic    
  FROM   employee  
  WHERE   employee.id   =   :str1  
  USING   sqlca   ;  
  COMMIT;  
   
  ll_len   =   LEN(Emp_id_pic)  
  IF   ll_len   >   32765   THEN  
  IF   Mod(ll_len,   32765)   =   0   THEN  
  ll_loopnum   =   ll_len/32765  
  ELSE  
  ll_loopnum   =   (ll_len/32765)   +   1  
  END   IF  
   
  ELSE  
  ll_loopnum   =   1  
   
  END   IF  
  li_FileNum   =   FileOpen("C:\myprogram\temp.bmp",LineMode!,   Write!,   LockWrite!,Replace!)  
  FOR   ll_loop   =   1   to   ll_loopnum  
  IF   ll_loop   =   ll_loopnum   THEN  
  b_tmp   =   BLOBMID(Emp_id_pic,(ll_loop   -   1)   *   32765,ll_len   -   (ll_loop   -   1)   *   32765)  
  ELSE  
  b_tmp   =   BLOBMID(Emp_id_pic,(ll_loop   -   1)   *   32765,32765)  
  END   IF  
  FileWrite(li_FileNum,b_tmp)  
  NEXT  
   
  FileClose(li_FileNum)  
  dw_employee.Modify("Photo.FileName=C:\myprogram\temp.bmp'")  
  =======================================================  
  这里面有个问题是,  
  文件路径C:\myprogram\,如果人家程序装到其它路径就不对了。  
  直接调用当前路径,如果用户才用过office   文件,当前路径可能又在c:\my   document\下。  
  由于我的用户程序是我装的,他们不会乱换路径。Top

8 楼happyscaiyu(酸菜鱼)回复于 2003-06-03 21:03:01 得分 0

多谢.我试试看Top

相关问题

  • 数据库的图形字段的问题
  • 数据库字段问题
  • 数据库字段问题
  • 数据库字段过滤
  • 数据库字段问题
  • 在Delphi中如何显示Access数据库中OLE字段的图形数据?
  • 我来问吧:已经有的数据库中(orical)增加一图形字段
  • 请问:怎样用TImage操作数据库中的图形字段
  • pb操作MS sql server 的数据库图形字段!!急急急,在线等...
  • blob对应数据库是那种字段? 数据库是ASA

关键词

  • 图形
  • 数据库
  • 数据
  • 文件
  • loopnum
  • ll
  • 显示
  • 数据窗口
  • pic
  • 双击

得分解答快速导航

  • 帖主:happyscaiyu
  • tuliplangel
  • joss
  • nolight
  • nolight

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo