本技巧摘自SQL Server杂志的一期如需了解更多的技巧请访问SQL Server的使用技巧中心
问我需要将Microsoft Word文档导入至SQL Server并索引这些文档以便在关系查询中使用这些文档怎样导入和索引文档呢?
答SQL Server允许您以多种方式导入Word文档让我们看看几种最常用的方法请注意在将文档导入至SQL Server之前您需要创建一个image数据类型列用于存放数据然后您可以使用textcopyexe命令行工具将image文件读入数据库从而完成文档的导入操作如果需要该工具的基本说明文档请在命令提示状态下键入textcopy /?将Word文档导入SQL Server的另一个方法是使用Microsoft ActiveX Directory Object(ADO)Stream接口编写导入代码您可以在Microsoft产品支持服务(PSS)的通过使用ADO Stream对象访问和修改SQL Server BLOB数据一文中找到示例代码
此外您也可以将二进制数据移到SQL Server中有关这一方法的详细说明请参阅PSS的使用ADO检索和更新SQL Server文本域一文移动二进制数据允许您将数据的一部分存放在数据库中这在需要控制数据格式时尤其有用例如如果只需要数据中到之间的字节导入二进制数据的速度远远高于使用ADO Stream接口的速度这是由于SQL Server从磁盘上检索数据的量大为减少人们通常使用这一技术来存储位掩码用于表示应用程序的开或关标志位
SQL Server 自带了说明了如何移动二进制数据的示例代码如需查看该代码只需在安装有SQL Server 光盘上代码示例的驱动器上选择 \Program Files\Microsoft SQL Server\\Tools\DevTools\Samples\ado路径展开该可执行文件在Visual Basic目录下查找Samples子目录在Employee示例下注意一下该代码是如何使用FillDataFields()函数的
如需索引Word文档SQL Server 和SQL Server 都提供了全文搜索组件该组件混合使用了多种技术用以索引大型文本和image列在执行全文搜索时您需要指定image列所含的文件类型以及从二进制数据中析取信息所需的筛选(filter)有关使用全文索引的详细信息请参阅SQL Server在线书籍中的相关主题并阅读David Jones 年月发表在SQL Server杂志网站上的名为构建更好的搜索引擎一文请注意索引Word文档并不会自动生成包含文档中关键字的一组关系表但是索引文件让您将这些Word文档包含在您的搜索中以下是从数据中析取关键字的可行方式
使用OLE自动处理从文档中读取用户定义的关键字在装载该文档时将这些关键字保存在关系表中
使用OLE自动处理打开文档并将其保存为文本(txt)格式为了析取重要的词语您可以使用自己的词语分析器遍历该文本文件文字分析器查看文档中的每个词语去除一些无用文字并将每个唯一的词语与其出现的次数一道存储起来
在新的全文索引文档中搜索特定的关键字并将这些关键字输入到关系表中
SQL Server 提供了多个强大的工具和接口用于帮助用户实现二进制Microsoft Office文档的快速装载搜索和检索