在PB中实现全文检索

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 22:57:17

  在宏编辑器中输入如下代码:

  Sub Macro1()

  ’用同样的方法我们可以获得所有常量的真实值

  Msgbox(wdCell)

  End Sub

  得到了这些常量的真实值,我们就可以在PB中把这些真实值传递给服务器的函数,以实现OLE的自动化控制。

  全文检索示例

  下面给出了一个完整的例子,该实例实现了对Word文档的全文搜索,并替换指定的字符串。部分关键代码如下。

  首先我们假定某数据库中含有表t_oledoc,表结构大致如下:

  下面的代码完成全文搜索,并将特定文字替换:

  //建立PB与OLE 服务器(Word)的连接,唤醒OLE服务器

  BLOB blb_tmp

  SetNull(blb_tmp)

  SELECTBLOB t_oledoc.c_docomnt INTO :blb_tmp

  FROM t_oledoc

  WHERE t_oledoc.c_id =:id

  //id 为用户输入的变量

  USING SQLCA;

  // ole_1 为OLE控件,将其放置于某一窗口

  If Not IsNull(blb_tmp) Then

  ole_1.ObjectData = blb_tmp

  End If

  //Word中Find对象的Excute()方法:

  //exdivssion.Execute(FindText, MatchCase, MatchWholeWord,MatchWildcards,MatchSoundsLike,MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl)

  FindText = var_findtxt

  //var_findtxt 为外部输入的要搜索的值

  MatchCase = true

  MatchWholeWord = true

  MatchWildcards = false

  MatchSoundsLike = false

  MatchAllWordForms = false

  Forward = true

  Wrap = 1

  //可通过前面介绍的方法获得枚举常量的值

  Format = false

  ReplaceWith = var_reptxt

  //var_reptxt 为外部输入的要替换成的值

  Replace = 2

  MatchKashida = false

  MatchDiacritics = false

  MatchAlefHamza = false

  MatchControl = false

  //执行Excute()函数

  ole_1.object.Selection.find.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format,ReplaceWith,Replace,MatchKashida,MatchDiacritics,MatchAlefHamza,MatchControl)

  借助上面介绍的方法,我们可以通过在PB中调用Word的方法实现对存放于数据库中Blob字段里的文档的全文搜索。同样,与OLE控件对应的不可视对象Oleobject,我们可以将其运用到Jaguar组件中,并利用其开发Web应用。
Photoshop入门教程 Photoshop实例教程 Photoshop cs教程 滤镜 鼠绘
Photoshop照片处理 Photoshop视频教程 Photoshop作品展示 特效 抠图

上一页  [1] [2] 

Tags:

作者:佚名
分享到: 微信 更多