2

在 SP2007/MOSS 中,我需要对单个列表运行 CAML 查询,如下所示:

<Where>
    <Or>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item1.aspx</Value>
        </Eq>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item4.aspx</Value>
        </Eq>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item7.aspx</Value>
        </Eq>
    </Or>
</Where>

这样做的实际结果是我有一个 SPListItemCollection,其中包含我拥有 URL 的项目。

但是,我收到错误消息“未正确安装一个或多个字段类型。转到列表设置页面以删除这些字段。

列表中的所有项目都具有相同的内容类型。SP 日志中唯一相关的错误显示相同的消息。

答案并没有解决这个特定问题,但最终是正确的(或者必须嵌套)。问题是我的字段值类型应该是 FileRef。

4

1 回答 1

3

此错误几乎总是因为您的 CAML 查询不正确。您是否尝试过像这样格式化它:

<Where>
    <Or>
        <Eq>
            <FieldRef Name='URL' />
            <Value Type='URL'>/path/item1.aspx</Value>
        </Eq>
        <Or>
            <Eq>
                <FieldRef Name='URL' />
                <Value Type='URL'>/path/item4.aspx</Value>
            </Eq>
            <Eq>
                <FieldRef Name='URL' />
                <Value Type='URL'>/path/item7.aspx</Value>
            </Eq>
        </Or>
    </Or>
</Where>

我很确定在 Or 或 And 分支中只能有两个组件。

于 2008-10-16T10:08:13.790 回答