知识大全 在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

相关参考

知识大全 在sqlplus中操作blob和clob

Tom在他的《Expertoneononeoracle》给出了sqlplus中将文件load进BLOB或者CLOB字段的例子这里保存一份以备急用

知识大全 使用PL/SQL从数据库中读取BLOB对象

使用PL/SQL从数据库中读取BLOB对象  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  确认现

知识大全 servlet实现从oracle数据库的blob字段中读出文件并显示

  /* *ReadFilejava * *Createdon年月日下午: */  packagejgwlapp;  importjavaio*;import*

知识大全 在PB中用OLE存取blob类型数据(一)

在PB中用OLE存取blob类型数据(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言 

知识大全 在PB中用OLE存取blob类型数据(二)

在PB中用OLE存取blob类型数据(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  处理b

知识大全 在PB中用OLE存取blob类型数据(三)

在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 数据

使用ADO.NET和C#处理BLOB数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用Mi