知识大全 在PowerBuilder中操作BLOB数据的技巧[1]
Posted 知
篇首语:书史足自悦,安用勤与劬。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在PowerBuilder中操作BLOB数据的技巧[1]相关的知识,希望对你有一定的参考价值。
在PowerBuilder中操作BLOB数据的技巧[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
PowerBuilder提供的BLOB(Binary Large Object)数据类型可以用来处理大型数据 包括图像 大文本 Word文档 二进制文件和多媒体等各种数据 它的长度可以是 ~ GB字节 我们利用BLOB类型的变量可以将数据传递给数据库以大字段方式存储 但是用通常的数据窗口技术无法将BLOB类型数据加入到数据库中 也不能将数据库中相应字段的数据提取出来 即使在程序中直接使用UPDATE和SELECT等SQL语句也是无法对BLOB类型数据进行操作的 下面笔者将介绍在PowerBuilder 中操作BLOB类型数据的技巧
程序设计原理
在PB中实现BLOB类型数据的入库和查询 主要要用到两条特殊的SQL命令 UPDATEBLOB和SELECTBLOB 首先定位要进行操作的记录 然后使用UPDATEBLOB命令就可以将BLOB类型变量中存放的数据传递给数据库 而使用SELECTBLOB则是将指定记录中的大字段数据传递给BLOB变量
使用BLOB类型变量获取外界文件的数据内容 还必须借助于PB提供的可视化OLE控制对象 通过它可以将指定的文件内容显示成相应的对象(如BMP图片) 双击它就可以激活相应的OLE服务器应用程序 来编辑修改对象的内容 同时也可以读取对象的数据内容(利用OLE控件的ObjectData属性) 给BLOB类型变量赋值
下面结合一个简单的程序实例 讲述如何处理BLOB数据类型 在这个例子中 BMP图片将作为一个大字段存储在数据库中 我们选择Microsoft Access 作为后台数据库 它的字段类型中包含 OLE对象 类型(如果选择MS SQL Server作为数据库服务器 可以使用TEXT或IMAGE类型字段存放大字段数据) 这样就为管理多媒体数据 大文件和图片提供了支持
操作BLOB字段的实现过程
我们在Access中创建一个新的数据库文件 文件名是bmp mdb
各字段的其它设置(如字段宽度等) 均采用缺省形式即可
编程前还需要做的一步准备工作是在操作系统的ODBC配置中建立指向bmp mdb数据库的连接 名称定为bmptable
下面的程序片段实现了数据库的连接 图片的插入 更新 删除和查询 考虑文章的篇幅 本文只列出与主题相关的程序源码
连接Access数据库
SQLCA DBMS = ODBC
// SQLCA为全局transaction事务变量
SQLCA AutoCommit = False
SQLCA DBParm = Connectstring= DSN=bmptable;UID=;PWD=
CONNECT USING SQLCA;
If SQLCA SQLCode <> Then
MessageBox ( 数据库错误 连接失败! )
Halt close;
End If
将BMP图片存入数据库
integer bmpno icount
//变量bmpno存放给定的图片编号
string filepath filename
blob blb_tmp
//…此处对图片编号bmpno赋值 例如bmpno= ;可以通过程序实现为弹出对话框窗口提供一个图片编号
//查询指定的图片编号是否已经存在
icount=
SELECT COUNT() INTO :icount
FROM bmptable
WHERE bmptable bmpno=:bmpno
USING SQLCA; //:bmpno为给定的图片编号
if icount> then
MessageBox( 查询结果 string(bmpno)+ 号图片已经存在 请输入一个新的图片编号 )
return
end if
//在OLE控制对象ole_ 中插入BMP图片文件
GetFileOpenName( 请选择一个需要插入的BMP图片文件 filepath filename BMP BMP图片文件( BMP) BMP )
If Len(filepath)= Then
Return
End If
If ole_ InsertFile(filepath)<> Then //OLE错误
Return
End If
//新图片入库
string sql
sql= INSERT INTO bmptable (bmpno bmpdata bmpname) &&
VALUES ( &&
+string(bmpno)+ &&
+filename+ )
EXECUTE IMMEDIATE :sql;
If SQLCA SQLDBCode= Then
MIT USING SQLCA;
cha138/Article/program/PB/201311/24625相关参考
Tom在他的《Expertoneononeoracle》给出了sqlplus中将文件load进BLOB或者CLOB字段的例子这里保存一份以备急用
使用PL/SQL从数据库中读取BLOB对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 确认现
知识大全 servlet实现从oracle数据库的blob字段中读出文件并显示
/* *ReadFilejava * *Createdon年月日下午: */ packagejgwlapp; importjavaio*;import*
在PB中用OLE存取blob类型数据(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前言
在PB中用OLE存取blob类型数据(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 处理b
在PB中用OLE存取blob类型数据(三) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 源程序
知识大全 在powerbuilder中使下拉列表框可以和数据关联
在从事使用powerbuilder进行数据库开发的过程中常常碰到要使用列表框来选择数据但是普通的下拉列表框并没有提供和数据相连接的方法而使用数据窗口的子下拉列表框来代替又显得有些别扭下面介绍一种好
知识大全 PowerBuilder数据窗口中记录颜色的隔层显示
PowerBuilder数据窗口中记录颜色的隔层显示 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 JDBC+Hibernate将Blob数据写入Oracle
JDBC+Hibernate将Blob数据写入Oracle 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
使用ADO.NET和C#处理BLOB数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用Mi