



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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_picSELECTBLOB photoINTO :lb_picFROM person_photoWHERE id = :is_id;IF SQLCA.SQLCODE = -1 THENMessageBox(提示,初始化照片信息失败!)ROLLBACK;RETURN 0END IFIF SQLCA.SQLCODE = 0 THENthis.cb_add.enabled = FALSEEND IFIF SQLCA.SQLCODE = 100 THENthis.cb_modify.enabled = FALSEthis.cb_delete.enabled = FALSEEND IFp_1.SetPicture(lb_pic)-在按钮cb_add的clicked事件中添加如下代码:String ls_filepath,ls_filenameInteger li_numli_num = GetFileOpenName(请选择照片,ls_filepath,ls_filename,BMP,Bitmap Files (*.BMP),*.BMP)IF li_num = 0 THENRETURN 0END IFinteger li_FileNum, loops, ilong flen, bytes_read, new_posblob b, tot_b ,lb_t/ Set a wait cursorSetPointer(HourGlass!)/ Get the file length, and open the fileflen = FileLength(ls_filepath)li_FileNum = FileOpen(ls_filepath, &StreamMode!, Read!, LockRead!)/ Determine how many times to call FileReadIF flen 32765 THENIF Mod(flen, 32765) = 0 THENloops = flen/32765ELSEloops = (flen/32765) + 1END IFELSEloops = 1END IF/ Read the filenew_pos = 1FOR i = 1 to loops bytes_read = FileRead(li_FileNum, b)tot_b = tot_b + bNEXTFileClose(li_FileNum)/由于不明原因,下面这条语句有时会出错,可以改为:INSERT INTO person_photo(id)INSERT INTO person_photo(id,photo)/并把下面这句改为:VALUES(:is_id);VALUES(:is_id,EMPTY_BLOB();IF SQLCA.SQLCODE = -1 THENMessageBox(提示,插入失败!)ROLLBACK;RETURN 0END IFCOMMIT;UPDATEBLOB person_photoSET photo = :tot_bWHERE id = :is_id;IF SQLCA.SQLCODE = -1 THENMessageBox(提示,更新失败!)ROLLBACK;RETURN 0END IFCOMMIT;p_1.SetPicture(tot_b)parent.cb_add.enabled = FALSEparent.cb_modify.enabled = TRUEparent.cb_delete.enabled = TRUEMessageBox(提示,添加成功!)-在按钮cb_modify的clicked事件中添加如下代码:String ls_filepath,ls_filenameInteger li_numli_num = GetFileOpenName(请选择照片,ls_filepath,ls_filename,BMP,Bitmap Files(*.BMP),*.BMP)IF li_num = 0 THENRETURN 0END IFinteger li_FileNum, loops, ilong flen, bytes_read, new_posblob b, tot_b ,lb_t/ Set a wait cursorSetPointer(HourGlass!)/ Get the file length, and open the fileflen = FileLength(ls_filepath)li_FileNum = FileOpen(ls_filepath, &StreamMode!, Read!, LockRead!)/ Determine how many times to call FileReadIF flen 32765 THENIF Mod(flen, 32765) = 0 THENloops = flen/32765ELSEloops = (flen/32765) + 1END IFELSEloops = 1END IF/ Read the filenew_pos = 1FOR i = 1 to loops bytes_read = FileRead(li_FileNum, b)tot_b = tot_b + bNEXTFileClose(li_FileNum)UPDATEBLOB person_photoSET photo = :tot_bWHERE id = :is_id;IF SQLCA.SQLCODE = -1 THENMessageBox(提示,修改失败!)ROLLBACK;RETURN 0END IFCOMMIT;p_1.SetPicture(tot_b)MessageBox(提示,修改失败!)-在按钮cb_delete的clicked事件中添加如下代码:IF MessageBox(提示,确定要删除吗?,Question!,YesNo!) = 2 THENRETURN 0END IFDELETE FROM person_photoWHERE id = :is_id;IF SQLCA.SQLCODE = -1 T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辅警法律知识培训
- 农业银行2025秋招结构化面试经典题及参考答案甘肃地区
- 建设银行2025神农架林区秋招笔试价值观测评题专练及答案
- 中国银行2025东营市笔试英文行测高频题含答案
- 2025年3D打印的金属材料性能优化
- 2025年3D打印的食品制造
- 2025可再生能源的全球合作机制
- 2025新兴行业商业模式创新实践
- 商业项目代理合同3篇
- 中国银行2025锡林郭勒盟秋招笔试EPI能力测试题专练及答案
- 医务人员职业素养提升知识试题及答案
- Unit 3 A Lets learn湖北公开课课件
- 2025年上半年湖南湘西州龙山县事业单位招聘工作人员41人易考易错模拟试题(共500题)试卷后附参考答案
- 精神科进修汇报:专业护理实践与挑战
- 加油站员工绩效考核制度或加油站员工激励约束办法
- 食堂验货标准培训
- 电动叉车安全操作培训
- 浆砌石挡墙拆除施工技术方案
- 人教版九年级化学上册教学工作计划(及进度表)
- T-SEEPLA 09-2024 四川省功能区声环境质量监测站(点)布设技术规范
- 2025年湖南民族职业学院单招职业适应性测试题库必考题
评论
0/150
提交评论