处理blob类型数据
对于大二进制数据在PB Script中是用blob数据类型表示并加以处理标准SQL语句中的selectinsert和update语句无法直接查询blob类型的数据在PB中操作blob类型的数据只能用专用的语句从数据库中查询blob类型的数据的命令是
selectblob restofselectstatement {using transactionobject}
更新数据库中blob类型数据的格式是
updateblob tablename
set blobcolumn = blobvarible
restofupatestatement {using transctionobject}
如连接的数据库是sybase或者Sql则selectblob和updateblob语句要求数据库的自动提交方式为true所以在在每次调用selectblob和updateblob语句以前必须用命令 Sqlcaautocommit=true把数据库的自动提交方式设置为true在updateblob语句的结束后再用命令Sqlcaautocommit = false把自动提交方式设置为false 索数据的参数(如flag)然后在可修改列的Protect后的框中输入(user_name是该DataWindow中的一列代表输入者的名称)
数据窗口的blob列
数据窗口blob列的功能
在PB 的datawindow画板中DBOLE控件允许用户利用这个控件浏览和操作数据库中的大二进制数据即通过DBOLE控件可以作如下操作
往数据库中存储大二进制数据如excel工作表word文档视频文件图片文件等各种格式的文件
从数据库中检索数据到datawindow对象
使用OLE服务器程序察看修改数据
将修改后的数据保存回数据库
在数据窗口中添加blob列的的步骤
)选择具有二进制字段的数据表作为数据源建立一新的数据窗口(该窗口可以至少需要包含非数据库表的标识列)
)选择insert controlOLE database blob 菜单在数据窗口的detail节中要插入blob列的位置单击鼠标这时将显示如图所示的对话框
下面解释这些属性的具体含义
)client class 客户类名默认为datawindow
)client name客户名默认为untitled
)table: 选择含有blob列的数据库表所选表的字段将出现在右侧的large binary/text column列表框中
)large binary/text column选择一个blob类型的字段列
)key clause检索和更新blob数据的关键字表达式其中使用带冒号前缀的变量指出是数据窗口对象的列如 表达式 id=:idid是数据库表中的列变量指出数据窗口对象的列
)filetemplate 如果需要OLE应用服务器每次打开相同的文件则在filetemplate框中输入文件名
)OLE class 如果不需要OLE应用服务器每次打开相同的文件则在OLE class框中选择一个OLE类如Pbrush
)Client name expression显示在OLE服务器应用程序窗口标题的文字可以输入为对应记录的id号是+id
单击ok按钮关闭对话框将dbole列添加到适当的位置保存数据窗口
预览则可以对数据库中的blob数据进行存取但是在新建的记录中只能存取OLE class框中选择的一种格式的blob数据不能存储多种格式的数据但如果数据库中存有多种格式的数据可以预览各种格式的数据