OLE存储可以用open函数打开,open函数的格式为: Olecontrol.Open(OLEsourcefile), 此函数在OLEsourcefile不存在时,自动创建该文件,所以创建OLE文件也用该函数;OLE存储可以用save函数保存,save函数的格式为: OLEcontrol.save()//保存OLE控件 OLEstorage.save()//保存OLE存储 4、处理blob类型数据 对于大二进制数据,在PBScript中是用blob数据类型表示并加以处理。标准SQL语句中的select、insert和update语句无法直接查询blob类型的数据,在PB中操作blob类型的数据只能用专用的语句,从数据库中查询blob类型的数据的命令是: selectblobrestofselectstatement{usingtransactionobject}; 更新数据库中blob类型数据的格式是: updateblobtablename setblobcolumn=blobvarible restofupatestatement{usingtransctionobject}; 如连接的数据库是sybase或者Sql,则selectblob和updateblob语句要求数据库的自动提交方式为true,所以在在每次调用selectblob和updateblob语句以前必须用命令Sqlca.autocommit=true,把数据库的自动提交方式设置为true,在updateblob语句的结束后,再用命令Sqlca.autocommit=false,把自动提交方式设置为false。索数据的参数(如flag),然后在可修改列的Protect后的框中输入(user_name是该DataWindow中的一列,代表输入者的名称): 5、数据窗口的blob列 5.1数据窗口blob列的功能 在PB的datawindow画板中DBOLE控件允许用户利用这个控件浏览和操作数据库中的大二进制数据,即通过DBOLE控件可以作如下操作: 往数据库中存储大二进制数据,如:excel工作表、word文档、视频文件、图片文件等各种格式的文件; 从数据库中检索数据到datawindow对象; 使用OLE服务器程序察看修改数据; 将修改后的数据保存回数据库; 5.2在数据窗口中添加blob列的的步骤 1)选择具有二进制字段的数据表作为数据源建立一新的数据窗口(该窗口可以至少需要包含非数据库表的标识列) 2)选择insert-control-OLEdatabaseblob菜单,在数据窗口的detail节中要插入blob列的位置单击鼠标,这时将显示如图1所示的对话框 下面解释这些属性的具体含义 1)clientclass:客户类名,默认为datawindow 2)clientname:客户名,默认为untitled 3)table:选择含有blob列的数据库表,所选表的字段将出现在右侧的largebinary/textcolumn列表框中。 4)largebinary/textcolumn:选择一个blob类型的字段列 5)keyclause:检索和更新blob数据的关键字表达式其中使用带冒号前缀的变量指出是数据窗口对象的列,如表达式id=:id,id是数据库表中的列,变量指出数据窗口对象的列 6)filetemplate:如果需要OLE应用服务器每次打开相同的文件,则在filetemplate框中输入文件名。 7)OLEclass:如果不需要OLE应用服务器每次打开相同的文件,则在OLEclass框中选择一个OLE类,如Pbrush。 8)Clientnameexpression:显示在OLE服务器应用程序窗口标题的文字,可以输入为:"对应记录的id号是"+id 单击ok按钮关闭对话框,将dbole列添加到适当的位置,保存数据窗口。 预览则可以对数据库中的blob数据进行存取,但是在新建的记录中只能存取OLEclass框中选择的一种格式的blob数据,不能存储多种格式的数据;但如果数据库中存有多种格式的数据,可以预览各种格式的数据。 6、源程序建立 1)首先在数据库中建立如下结构的表blobsave: 字段名称数据类型备注 idchar(4)primairykeyindex s_pathchar(50) picbinary(50) 2)在PB建立PBl库blobsave.PBl 3)在PBl库blobsave.PBl中建立应用blobsave 在应用的open事件中设置数据库连接程序(本程序中采用的是odbc方式连接数据库,读者可根据自己所建立的数据库的不同选用不同的连接方式,以下连接数据库的代码也有所改动,至于连接不同的数据库的方法,请参考有关资料,本文不做详细介绍): |