在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。

有帮助吗?

解决方案

此错误几乎总是因为您的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分支中只能有两个组件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top