解决方案: SPQuery 不能搜索文件夹

过去这周我正在实施"演变" 使用 BDC 和 SPQuery 并遇到一些困难,使用 SPQuery 针对包含文件夹的文档库的客户端解决方案. 底线: 分配"递归" 在视图属性中的查询.

我的方案:

  • 周一, 上传文档,并提供一些元数据.
  • 下一周, 我上传一个新的文档. 很多此新文档的元数据基于我周一传的文档 (我们称之为"主文档").
  • 我们已经创建了 web 服务门面提供 BDC-友好界面到列表中,以便用户可以方便地找到那星期一通过搜索标题的文档.
  • BDC 数据列提供了一个友好的用户界面. (这是企图的我在为一个更友好的查阅列使用 BDC 的一部分).

最后的 BDC 门面服务使用像这样的查询进行查找:

 // U2U 工具用于生成此 CAML 查询帮助.
      oQuery.Query =
        "<在哪里>";

      如果 (titleFilter.Length > 0)
        oQuery.Query   =
          "  <和>";

      oQuery.Query   =
        "    <和>" +
        "      <Geq>" +
        "        <FieldRef 名称 = "DocumentId" />" +
        "        <值类型 = "Text">" + minId + "</价值>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef 名称 = "DocumentId" />" +
        "        <值类型 = "Text">" + maxId + "</价值>" +
        "      </Leq>" +
        "    </和>";

      如果 (titleFilter.Length > 0)
        oQuery.Query   =
          "    <包含>" +
          "      <FieldRef 名称 = "Title" />" +
          "      <值类型 = "Text">" + titleFilter + "</价值>" +
          "    </包含>" +
          "  </和>";
      oQuery.Query   =
        "</在哪里>";

在发展的初始阶段, 这工作得非常棒. 不过, 我们引入的目录来解决一些问题的文件夹和突然, 我 BDC 选取器不会返回任何结果. 我跟踪这 SPQuery 将永远不会返回任何结果的事实. 我们文件夹主要用于允许多个文件具有相同的名称,要上载,但使用不同的元数据. 当上载文件, 我们创建一个基于 ID 的列表项的文件夹,然后移动该文件存在 (写了, 在这里; 我们已经 好坏参半的结果 这种方法,但整体上, 它好工作). 用户不关心文件夹,事实上, 真不明白有任何文件夹. 我们已经配置上要显示的项目而不考虑文件夹的库的所有视图.

我打了两倍的技术实施发展和解决它以不同的方式每次这个问题. 第一次, 我不在查询中使用包含运算符. 没有包含运算符, 我是能够解决的问题通过指定视图上 SPQuery 的构造函数. 而不是使用默认的构造函数:

写入 oList = web。列表["文档"];

SPQuery oQuery = 新增功能 SPQuery();

我转而用于指定视图的构造函数:

写入 oList = web。列表["文档"];

SPQuery oQuery = 新增功能 SPQuery(oList.Views["所有的文档"]);

这解决了这个问题,我开始我的结果.

然后加入混合的 CONTAINS 操作符,它再一次打破了. 原来,包含运算符, 到目前为止,我可以告诉, 不能与视图相同的方式更简单的 GEQ / LEQ 运算符. 我做了一些搜索,学到了,该查询 ViewAttributes 应该设置为"递归", 如在:

oQuery.ViewAttributes = "范围 = "Recursive"";

包含用于解决了这个问题. 事实上, 这也解决了我原来的搜索问题和如果指定递归属性第一次, 我会不有问题再碰到.

基于视图的 SPQuery 工程部分经营者这一事实 (GEQ/LEQ) 而不是其他 (包含), 加上这一事实似乎 Kpi 不能工作在所有与此文件夹包含的文档库主角我相信 SPQuery 具有正交性的几个问题.

特别感谢:

  • 在的好人们 U2U 和他们的查询工具.
  • 迈克尔 · 哈弗的伟大 "边学边做" 博客张贴内容, 意见及回应.

</结束>

订阅我的博客!

3 上“的想法解决方案: SPQuery 不能搜索文件夹

  1. 没有名称

    http://www.batteryfast.co.uk/asus/w3v.htm 华硕 w3v 电池,
    http://www.batteryfast.co.uk/asus/w3000a.htm 华硕 w3000a 电池,
    http://www.batteryfast.co.uk/asus/w3000.htm 华硕 w3000 电池,
    http://www.batteryfast.co.uk/asus/w3000v.htm 华硕 w3000v 电池,
    http://www.batteryfast.co.uk/asus/a31-s5.htm 华硕 a31 s5 电池,
    http://www.batteryfast.co.uk/asus/a32-s5.htm 华硕 a32 s5 电池,
    http://www.batteryfast.co.uk/asus/s52n.htm 华硕 s52n 电池,
    http://www.batteryfast.co.uk/asus/s5000.htm 华硕 s5000 电池,
    http://www.batteryfast.co.uk/asus/s5200n.htm 华硕 s5200n 电池,
    http://www.batteryfast.co.uk/asus/s5n.htm 华硕 s5n 电池,
    http://www.batteryfast.co.uk/asus/90-naa1b1000.htm 华硕 90 naa1b1000 电池,
    http://www.batteryfast.co.uk/asus/s2691061.htm 华硕 s2691061 电池,
    http://www.batteryfast.co.uk/asus/a42-v6.htm 华硕 a42 v6 电池,
    http://www.batteryfast.co.uk/asus/a32-u5.htm 华硕 a32 u5 电池,
    http://www.batteryfast.co.uk/asus/u5f.htm 华硕 u5f 电池,
    http://www.batteryfast.co.uk/asus/u5a.htm 华硕 u5a 电池,
    http://www.batteryfast.co.uk/asus/u5f.htm 华硕 u5f 电池,
    http://www.batteryfast.co.uk/asus/u5.htm 华硕 u5 电池,
    http://www.batteryfast.co.uk/compaq/nw8000.htm 康柏 nw8000 电池,
    http://www.batteryfast.co.uk/compaq/nc8000.htm 康柏 nc8000 电池,
    http://www.batteryfast.co.uk/compaq/v1000.htm 康柏 v1000 电池,
    http://www.batteryfast.co.uk/compaq/nc6000.htm 康柏 nc6000 电池,
    http://www.batteryfast.co.uk/compaq/nx5000.htm 康柏 nx5000 电池,
    http://www.batteryfast.co.uk/compaq/n600.htm 康柏 n600 等电池,
    http://www.batteryfast.co.uk/compaq/n600c.htm 康柏 n600c 电池,
    http://www.batteryfast.co.uk/compaq/n610c.htm 康柏 n610c 电池,
    http://www.batteryfast.co.uk/compaq/n610v.htm 康柏 n610v 电池,
    http://www.batteryfast.co.uk/compaq/n620c.htm 康柏 n620c 电池,
    http://www.batteryfast.co.uk/compaq/e500.htm 康柏 e500 电池,
    http://www.batteryfast.co.uk/compaq/e500s.htm 康柏 e500s 电池,
    http://www.batteryfast.co.uk/compaq/v300.htm 康柏 v300 电池,
    http://www.batteryfast.co.uk/compaq/v500.htm 康柏 v500 电池,
    http://www.batteryfast.co.uk/compaq/pp2060.htm 康柏 pp2060 电池,
    http://www.batteryfast.co.uk/compaq/nx9000.htm 康柏 nx9000 电池,
    http://www.batteryfast.co.uk/compaq/nx9005.htm 康柏 nx9005 电池,
    http://www.batteryfast.co.uk/compaq/nx9010.htm 康柏 nx9010 电池,
    http://www.batteryfast.co.uk/compaq/nx9020.htm 康柏 nx9020 电池,
    http://www.batteryfast.co.uk/compaq/n110.htm 康柏 n110 电池,
    http://www.batteryfast.co.uk/compaq/n110s.htm 康柏 n110s 电池,
    http://www.batteryfast.co.uk/compaq/pp2101x.htm 康柏 pp2101x 电池,
    http://www.batteryfast.co.uk/compaq/presario-2100.htm 康柏 2100 电池,
    http://www.batteryfast.co.uk/compaq/ze4000.htm 康柏 ze4000 电池,
    http://www.batteryfast.co.uk/compaq/f4809a.htm 康柏 f4809a 电池,
    http://www.batteryfast.co.uk/compaq/f4812a.htm 康柏 f4812a 电池,
    http://www.batteryfast.co.uk/dell/inspiron-700m.htm 戴尔 inspiron 700m 电池,
    http://www.batteryfast.co.uk/dell/inspiron-710m.htm 戴尔 inspiron 710 m 电池,
    http://www.batteryfast.co.uk/dell/latitude-x200.htm 戴尔 latitude x 200 电池,
    http://www.batteryfast.co.uk/dell/8u443.htm 戴尔 8u443 电池,
    http://www.batteryfast.co.uk/dell/312-0058.htm 戴尔 312-0058 电池,

    答复

留言

您的电子邮件地址不会被公开. 必需的地方已做标记 *