当我们点击OLE控件中的insert
control时,pb会搜索那些控件可用,并且在PB中显示出来。PB搜索控件的位置为:注册表中的"HKEY_CLASSES_ROOT\CLSID"下的子项(为DLL、OCX文件注册信息)搜索到保存的位置在:"HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\8.0\OLE
Object
Bitmaps\..."也就是说pb搜索CLSID的子项保存在OLE
Object
Bitmaps中,当搜索CLSID中的DLL或OCX控件和PB有冲突时,CLSID后面的DLL、OCX控件就不会保存在OLE
Object
Bitmaps中,也就是说OLE
Object
Bitmaps没有完全加载所有控件,有的控件冲突导致中断使PB报错,找出冲突的控件是关键。 解决方法:(一)运行注册表(二)在注册表中找到“HKEY_CLASSES_ROOT\CLSID”并导出保存为CLSID.REG,并且用记事本打开 (三)在注册表中找到"HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\8.0\OLE
Object
Bitmaps\..."中的最后一个子项,比如为“0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC”,证明这个子项前的控件都是正确的。 (四)在用记事本打开CLSID.REG,并且搜索OLE
Object
Bitmaps最后一个子项比如为:“0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC”,一直往下查找,直到提示查找不到为止,到此为止,记事本以上的控件都是正确的。然后用关键字“ToolboxBitmap32”再往下搜索,找到第一个带“ToolboxBitmap32”和“control”关键字后,如图证明这个出问题的控件为”C:\windows\system32\aliedit\aliedit.dll”然后在命令提示符中输入进行对出问题的控件反注册,如果提示反注册成功,打开PB的OLE控件看是否报错,如果还报错返回步骤(三)循环查找。如果提示找不到路径,则在“HKEY_CLASSES_ROOT\CLSID”把对应的整个子项删除。一般只会有一两个控件有冲突,不用担心工作量会很大(五)成功后
前言
在数据库的开发过程中 经常需要在数据库中存储一些备注信息 而这些备注信息的内容一般较大 格式多样 如有可能是语音文件 视频文件 图片文件 文本文件等 怎样在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控件的d出菜单中选择open可以激活画板中OLE对象
使用服务器应用程序修改OLE对象
结束修改 使对象恢复为非活动状态 只要单击服务器应用对象之外的任何区域即可 也可以直接关闭服务器应用程序的窗口
嵌入和链结OLE控件
可以将OLE对象嵌入或者链结到自己的应用程序中 嵌入对象的数据放在应用程序中 在开发过程中这些数据放在应用程序的PBl库中 当生成应用后 这些数据将存放在exe或PBd文件中 虽然在程序的运行过程中可以修改 但修改的数据不会保存 链结对象的数据存放在PB应用程序以外 当链结一个对象时 在PB应用程序中不存放数据文件 而是存放引用数据的指针 使用链结的数据 对数据的管理和保存都由服务器应用程序负责 这样可以用服务器应用程序修改处理数据 处理后的数据可以保存回原文件中 链结方式应用于需要多个应用程序共享的数据文件 任何一个应用程序修改了数据文件 都将影响到所有链结该文件的应用程序
OLE控件的激活方式
OLE控件的激活方式有offsite和in place两种激活方式 offsite激活方式是指在PB应用程序的界面以外单独打开OLE对象 in place激活方式是指PB应用程序的界面的原位置打开OLE对象 在数据窗口中的dbOLE默认的是offsite激活方式 而window中的OLE默认的激活方式是in place
在PB应用程序中可以用命令
OLE_control active(offsite) 或者OLE_control active(in place)设置OLE对象的以何种方式打开
设置和插入OLE对象
在程序运行时可以用函数
OLE_control insertfile(soucefile) 插入对象
OLE_control objectdata = blobvar 设置对象
OLE存储
OLE存储(OLEstorage)的概念
OLE存储(OLEstorage)是OLE数据的一个仓库 存储就象磁盘上的目录结构 它可以是一个OLE对象 也可以包含在OLE对象中 每个对象都包含在OLE存储或者存储内的子存储内 保存在OLE存储中数据称作OLE流(OLE stream) OLE流同OLE对象的关系就象文件同目录的关系 含有OLE对象的存储或子存储可以看做是属于特殊服务器的信息 在该层次之下的各部分都可以被相应的服务器程序 *** 作 OLE存储对象是类用户对象 可以说明相应类型的变量 建立与之相应的实例和打开存储等 在使用完存储后需要关闭存储 释放分配的内存
OLE存储的打开和保存
OLE存储可以用open函数打开 open函数的格式为
Olecontrol Open(OLEsourcefile)
此函数在OLEsourcefile不存在时 自动创建该文件 所以创建OLE文件也用该函数 OLE存储可以用save函数保存 save函数的格式为
OLEcontrol save() // 保存OLE控件
lishixinzhi/Article/program/SQL/201311/16230
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)