日期:2009-03-14  浏览次数:20934 次

本段文章节选自铁道出版社新出的《用BackOffice建立Intranet/Extranet应用》一书(现已在各书店有售。如海淀图书城、西单图书大厦等。外地或者需要送货上门的读者可以到www.wanbook.com.cn或www.e-bookshop.com.cn上在线购买。本书书号为ISBN7113039448)。本书详尽地讲述了如何使用微软BackOffice系列产品来组建Intranet/Extranet应用。通过它您将掌握NT的安装和设置、使用IIS建立Web站点、通过ILS建立网络会议系统、用Exchange建立企业的邮件和协作系统、用SQL Server建立Web数据库应用、用Proxy Server建立同Internet安全可靠的连接、用Media Server建立网络电视台/广播站、用Chart server建立功能强大的聊天室、用Site Server建立个性化的邮件列表和分析网站的访问情况、用Commerce Server建立B2B或B2C的电子商务网站。此外本书还对网络的安全性进行了讨论,从而指导您建立一个更为健壮和安全的网络应用。阅读本书之后,您将发现实现丰富多彩的网络应用原来这样简单……
绝对原创,欢迎转载。但请务必保留以上文字。

6.11.2.    通过SQL Server查询Index Server
    如果要通过SQL Server查询Index Server,须使用OPENQUERY函数。其语法结构如下。
    OPENQUERY(linked_server, 'query')
    其中linked_server参数为连接的名称。而query参数为要进行的查询,它将以一个字符串的形式传送给OPENQUERY函数。此函数返回的将是一个虚拟表,从而可以让我们对其做进一步的查询。
    下面的语句查找内容包含中SQL这个单词的所有文件:
    SELECT *
FROM OpenQuery(FileSystem,
'SELECT Directory, FileName, DocAuthor, Size, Create
FROM SCOPE()
WHERE CONTAINS( Contents, ''SQL'' ) ' )
    对于Index Server的查询,其FROM语句的语法格式于普通的SQL语句是有所区别的。其语法结构如下:
FROM [ Catalog_Name.. ] { SCOPE( [ 'Scope_Arguments' ] ) }
其中的Catalog_Name参数用于指明要进行查询的索引目录。由于我们在定义连接时只能选择一个索引目录,所以此参数在此将被省略。而SCOPE函数用于指明要进行查询的文件所在的目录。SCOPE函数的语法结构如下图所示。

图6.11.2-1SCOPE函数语法结构图
其中DEEP TRAVERSAL OF关键字指明将查询目录中所有的文件,包括其子目录中的所有文件。而SHALLOW TRAVERSAL OF关键字则指明只查询顶级目录中的文件,而不包括子目录中的那些文件。如果不指明查询的目录深度,则默认为DEEP TRAVERSAL OF。
physical_path和virtual_directory分别为物理目录和虚拟目录。其中各自的含义在图中已经标示的非常明白了,在此就不再进一步说明了。
Index Server共支持50种文件属性,而可以用来作为查询条件或返回结果的常用文件属性见下表:
属性名称    数据类型    注释    可否用于ORDER BY子句    可否用于SELECT语句中
Access    datetime    文件的最后访问时间。    可    可
Characterization    nvarchar或ntext    文档的描述或摘要,由Index Server使用。    否    可
Create    datetime    文件的创建时间。    可    可
Directory    Nvarchar    文件的物理路径,不包含文件名。    可    可
DocAppName    nvarchar    创建文件的应用程序的名称。如Microsoft Word 9.0。    可    可
DocAuthor    nvarchar    文档的作者。    可    可
DocComments    nvarchar    关于文档的注释。    可    可
DocCompany    nvarchar    写作文档的公司的名称。    可    可
DocLastAuthor    nvarchar    最近编辑文档的用户。    可    可
DocLastPrinted    datetime    文档的最近一次打印时间。    可    否
DocPageCount    integer    文档的页数。    可    否
DocParaCount    integer    文档的图形数量。    可    否
DocRevNumber    integer    文档的当前版本。    可    可
DocSubject    nvarchar    文档的主题。    可    可
DocTemplate    nvarchar    文档的模板。    可    可
DocTitle    nvarchar    文档的标题。    可    可
DocWordCount    i