前言
在数据库的开发过程中经常需要在数据库中存储一些备注信息而这些备注信息的内容一般较大格式多样如有可能是语音文件视频文件图片文件文本文件等怎样在PB中实现这些格式不同的备注文件的存取及预览一直是PB开发人员比较关心的一个问题本文系统的介绍了三种存取备注二进制信息的方法
对备注二进制信息的存储可以采用以下三种方式
方法一文件保存在固定的路径下数据库中存取文件路径和名称
方法二数据库中用blob类型或者varbinary类型字段存储备注文件
方法三在本地用OLE存储结构存储备注文件
OLE的基本概念
OLE是Object Linking Embedding(对象链结与嵌入)的缩写它可以使windows应用程序共享数据和程序
OLE控件
在PB中OLE控件是一个OLE对象的包容器可以使用服务器应用程序提供的功能和命令来编辑对象也可以使用自动化OLE交互在程序中激活对象和向服务器应用程序发送命令在PB 的window画板中的OLE控件允许用户从多个应用程序嵌入和链结组件
建立和设置OLE控件
从window画板中选择OLE控件插入window
当建立一个OLE控件并且插入一个对象时PB将激活服务器应用程序以允许对对象进行编辑和修改在使OLE中的对象称为非活动状态后可以使用控件属性选项卡来设置控件的属性
激活修改window画板中的OLE对象
在OLE控件的弹出菜单中选择open可以激活画板中OLE对象
使用服务器应用程序修改OLE对象
结束修改使对象恢复为非活动状态只要单击服务器应用对象之外的任何区域即可也可以直接关闭服务器应用程序的窗口
嵌入和链结OLE控件
可以将OLE对象嵌入或者链结到自己的应用程序中嵌入对象的数据放在应用程序中在开发过程中这些数据放在应用程序的PBl库中当生成应用后这些数据将存放在exe或PBd文件中虽然在程序的运行过程中可以修改但修改的数据不会保存链结对象的数据存放在PB应用程序以外当链结一个对象时在PB应用程序中不存放数据文件而是存放引用数据的指针 使用链结的数据对数据的管理和保存都由服务器应用程序负责这样可以用服务器应用程序修改处理数据处理后的数据可以保存回原文件中链结方式应用于需要多个应用程序共享的数据文件任何一个应用程序修改了数据文件都将影响到所有链结该文件的应用程序
OLE控件的激活方式
OLE控件的激活方式有offsite和inplace两种激活方式offsite激活方式是指在PB应用程序的界面以外单独打开OLE对象inplace激活方式是指PB应用程序的界面的原位置打开OLE对象在数据窗口中的dbOLE默认的是offsite激活方式而window中的OLE默认的激活方式是inplace
在PB应用程序中可以用命令
OLE_controlactive(offsite) 或者OLE_controlactive(inplace)设置OLE对象的以何种方式打开
设置和插入OLE对象
在程序运行时可以用函数
OLE_controlinsertfile(soucefile) 插入对象
OLE_controlobjectdata = blobvar 设置对象
OLE存储
OLE存储(OLEstorage)的概念
OLE存储(OLEstorage)是OLE数据的一个仓库存储就象磁盘上的目录结构它可以是一个OLE对象也可以包含在OLE对象中每个对象都包含在OLE存储或者存储内的子存储内保存在OLE存储中数据称作OLE流(OLE stream)OLE流同OLE对象的关系就象文件同目录的关系含有OLE对象的存储或子存储可以看做是属于特殊服务器的信息在该层次之下的各部分都可以被相应的服务器程序操作OLE存储对象是类用户对象可以说明相应类型的变量建立与之相应的实例和打开存储等在使用完存储后需要关闭存储释放分配的内存
OLE存储的打开和保存
OLE存储可以用open函数打开open函数的格式为
OlecontrolOpen(OLEsourcefile)
此函数在OLEsourcefile不存在时自动创建该文件所以创建OLE文件也用该函数 OLE存储可以用save函数保存save函数的格式为
OLEcontrolsave() // 保存OLE控件
OLEstoragesave() //保存OLE存储