使用PB从Oracle读取并保存BLOB图片
需积分: 9 78 浏览量
更新于2024-09-07
收藏 2KB TXT 举报
本文档主要介绍了如何使用PB(Progress 4GL)语言来读取Oracle数据库中的BLOB(二进制大对象)数据,特别是图像文件,如.jpg或.bmp格式。PB在处理数据库操作时,提供了便捷的方法来处理大型数据块,包括存储、读取和写入。
首先,程序通过`GetFileOpenName`函数获取用户选择的图片文件路径(`pname`)和文件名(`fname`),并设置了一些文件类型过滤规则。如果用户未选择文件,则程序返回。
接着,通过`SQLCA.AutoCommit=True`确保事务在读取BLOB数据时处于可提交状态。然后,计算存储文件的长度(`ll_len`),使用`FileOpen`函数打开该文件,并将其内容读取到内存中的`lb_fn`变量。这个过程是按32765字节(Oracle通常每行最多32767个字符)进行分块处理的,将读取的数据添加到`lb_file`中。
在数据库操作部分,利用SQL查询从`pidtest`表中获取特定ID(例如1)对应的BLOB列`blobcol`的值,并将其赋值给`lb_pict`,准备存储或显示图片。这里使用了`setpicture`方法将BLOB数据设置为控件`p_1`的图片属性。
此外,文档还展示了如何将读取到的BLOB图片保存到本地。通过`getfilesavename`函数获取保存路径和文件名,然后用循环结构逐块写入文件。在写入过程中,同样遵循32765字节的分块策略,使用`filewrite`函数,并利用`blobmid`函数对BLOB进行分段写入,确保写入的正确性。
最后,文档提到了一个额外的操作,即使用`DECLARE C1 CURSOR FOR`语句声明一个游标,用于从`fare_daily_view`表中根据条件(如`aln_cd`和`cargo_aln_fare`)查询数据。这部分内容与最初的主题——读取Oracle照片——关联不大,但可能是后续数据分析或报表生成的部分。
总结来说,该文档详细介绍了如何使用PB在Oracle环境中处理BLOB图片数据,涉及文件操作、数据库查询和BLOB数据的读取和写入技巧。这对于在PB编程环境中与Oracle数据库交互,特别是处理图像文件的场景非常实用。
2018-12-24 上传
2013-06-28 上传
2021-10-09 上传
2021-10-10 上传
2009-12-24 上传
2023-06-06 上传
2012-02-15 上传
2022-09-24 上传
qq_36367850
- 粉丝: 0
- 资源: 1
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目