powerbuilder:在Power Builder4.0的数据窗口中OLE的实现方法



OLE(Object linking and Embedding)即对象连接和嵌入简称是在Windows环境下实现区别Windows实用的间共享数据和功能种思路方法在Power Builder应用中实现OLE则Power Builder作为OLE Container在其中OLE Server,利用OLE Server提供功能来显示和操纵OLE对象

  Power Builder数据窗口(DataWindow)支持OLE2.0在其中可建立Blob(Binary Large Object 2进制大型对象)或image类型字段这种字段数据为OLE对象由于数据窗口支持OLE 2.0因此在使用时你需要保证你要用到OLE Server也要支持OLE2.0对象用户或可以激活该OLE字段并且可以向LE Server发送简单命令在Power Builder数据窗口中你可以建立OLE字段个OLE字段可以完成如下功能:

  1. 在数据库中存储OLE对象比如Excel电子表格或Word for Windows文本文件
  2. 把OLE对象从数据库中提取到数据窗口
  3. 使用OLE Server比如Excel或Word for Windows来修改数据
  4. 将修改过数据存入数据库

  本文将结合个例子解释如何完成上述功能在数据库中个表中该表有个image 类型字段用于存放Windows Pabrush编辑bmp图Power Builder可在数据窗口中提取该表记录并把image字段中bmp图显示在窗口中然后通过在数据窗中双点(Double Click)该图自动打开Pabrush并调出bmp图用户可对它进行些修改和保存修改结果

  具体实现步骤如下:

=\"p2\">、建立OLE字段

  在本例中我们就建立个表Pa内含2个字段个字段名为ID个字段名称作File进入Power BuilerDatabase画笔来建此表ID字段取type为eger不许为空;File字段type为Image可为空并选ID为主键注:File字段数据类型即为所谓Blob类型但区别DBMS中取名字区别如watcom SQL称为long birary而SQL Server为Image或Text

=\"p2\"> 2、设置 Autocommit

  在使用SYBASE SQL Server数据库时含有OLE字段DataWindow所使用Transaction Object(事务对象)中AutoCommit项必须置为TRUE在设计DataWindow前可通过Preference画笔选择Database图标将其中Autocommit项赋值为1

=\"p2\"> 3、设计数据窗口

  在DataWindow画笔中打开建好Pa但此时只选择ID字段进行显示而先不要选择file字段(我们将在设计窗口中再添加此字段)DataWindow设计窗口从Objects菜单中选择OLE Database Blob项然后在设计窗口中适当位置点鼠标左键此时Database Birary/Text Large Object 对话窗显示出来逐项填写对话窗:

  在Name项填入适当名字此项可选但起了名字后可使你在中引用

在Client Class中填入DataWindow可选
在Client Name中填入当前DataWindow名字可选
在Table中选择Pa
在Large Binary/Text Columns中选择file字段
在Key Clause中,选id=:id该项用于构造where子句即where id=:id用于定位相应记录
在File template中填入个bmp文件名或通过Browse键来查找个文件比如我们选择arcade.bmp
在OLE Class,Description (Only Class is Used)中通过下拉菜单选择Pabrush
在Client Name Expression:中填入某串表达式该表达式将在OLE Server运行时显示在其Title处如填入".BMP File"+String(id) 
按OK键

  此时Power Builder关闭该对话窗并回到DataWindow设计窗口OLE字段以个小方框形式显示出来般情况当你运行该DataWindow时上述小方框不显示出来因此为了识别该OLE字段在DataWindow中位置我们可以在该小方框后摆放个可以识东西个椭圆等等因此在DataWindow显示时我们只要双点该椭圆即可激活OLE Server

=\"p2\"> 4、预浏览(Preview)OLE对象

  在DataWindow设计窗口下点按Preveiw图标然后点按Insert图标在Pa表中添加填入id然后双点椭圆此时Pabrush被激活同时打开arcade.bmp些修改然后从PabrushFile菜单中选择Update项来更新你修改此时OLE Server将你修改信息送回DataWindow,然后通过选择File菜单中Close项关闭Pabrush并回到DataWindow此时在你DataWindow中OLE字段所在处显示出了Pabrush所画图标按Upd DB图标将OLE数据存入数据库中以后当你 库中查出Pa表中记录时你可以通过双点OLE对象来操作它思路方法同上

Tags:  powerbuilder11 powerbuilder9.0 powerbuilder powerbuilder

延伸阅读

最新评论

发表评论