网站大量收购独家精品文档,联系QQ:2885784924

PB对Oracle中图片进行存取初探.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PB对Oracle中图片进行存取初探.doc

PB对Oracle中图片进行存取初探 2006-08-28 17:51 没想到用PB对Oracle进行图片的存取会如此麻烦。 以前只知道PB这个开发工具有很大问题, 然而这次,问题恐怕出在Oracle身上。 原本想用Oracle提倡的BLOB类型处理图片, 几经试验,最终还是无果而终。 后来不得不用LONG RAW类型代替之。 即便如此,使用LONG RAW还是出现了不明原因的错误。 以下描述不够详尽,只给出个大概的解决方案, 不过对于一般的图片处理已经足够了。 希望我能够进一步研究出更好的解决方案来, 并早日攻破BLOB类型的难关! ******************************************************************************************* 使用如下语句在Oracle中创建一张表person_photo: CREATE TABLE person_photo( id varchar2(8) PRIMARY KEY NOT NULL, photo LONG RAW ); 设置PB连接好相关数据库,在PB中建立一个窗口w_test。 上面放置一个Picture控件,命名为p_1。 再放置3个CommandButton控件,分别命名为cb_add,cb_modify,cb_delete。 假设窗口w_test刚刚打开的时候会获得一个实例变量String is_id。 ------------------------------------------------------------------------------------------- 在窗口w_test的open事件中添加如下代码: Blob lb_pic SELECTBLOB photo INTO :lb_pic FROM person_photo WHERE id = :is_id; IF SQLCA.SQLCODE = -1 THEN ?MessageBox(提示,初始化照片信息失败!) ?ROLLBACK; ?RETURN 0 END IF IF SQLCA.SQLCODE = 0 THEN ?this.cb_add.enabled = FALSE END IF IF SQLCA.SQLCODE = 100 THEN ?this.cb_modify.enabled = FALSE ?this.cb_delete.enabled = FALSE END IF p_1.SetPicture(lb_pic) ------------------------------------------------------------------------------------------- 在按钮cb_add的clicked事件中添加如下代码: String ls_filepath,ls_filename Integer li_num li_num = GetFileOpenName(请选择照片,ls_filepath,ls_filename,BMP,Bitmap Files (*.BMP),*.BMP) IF li_num = 0 THEN ?RETURN 0 END IF integer li_FileNum, loops, i long flen, bytes_read, new_pos blob b, tot_b ,lb_t // Set a wait cursor SetPointer(HourGlass!) // Get the file length, and open the file flen = FileLength(ls_filepath) li_FileNum = FileOpen(ls_filepath, ?StreamMode!, Read!, LockRead!) // Determine how many times to call FileRead IF flen 32765 THEN ?IF Mod(flen, 32765) = 0 THEN ??loops = flen/32765 ?ELSE ??loops = (flen/32765) + 1 ?END IF ELSE ?loops = 1 END IF // Read the file new_pos = 1 FOR i = 1 to loops ?bytes_read = FileRead(li_FileNum, b) ?tot_b = tot_b + b NEXT FileClose(li_FileNum) //由于不明原因,下面这条语句有时会出错,可以改为:INSERT INTO person

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档