标签: caml

具有嵌套AND的CAML查询和用于多个字段的OR

我正在研究概念验证代码,以根据提供给我正在编写的高度特定的搜索Web服务的关键字动态生成CAML.我没有使用SharePoint提供的搜索Web服务来进行此证明.我已经为我想要实现的目标做了这样的事情.从我的所有研究中,我找不到我想要实现的一个接近的例子,即检查多个值的多个字段.是的,我已经看过SO了我的答案,包括这个:需要帮助建立CAML查询.

话虽如此,如果有可能,如何在CAML中编写以下类似SQL的查询?

SELECT FirstName, LastName, Description, Profile
FROM SomeFakeTable
WHERE (FirstName = 'John' OR LastName = 'John' OR Description = 'John' OR Profile='John')
  AND (FirstName = 'Doe' OR LastName = 'Doe' OR Description = 'Doe' OR Profile='Doe')
  AND (FirstName = '123' OR LastName = '123' OR Description = '123' OR Profile='123')
Run Code Online (Sandbox Code Playgroud)

sharepoint caml nested-query

28
推荐指数
1
解决办法
10万
查看次数

CAML查询:如何从结果集中过滤文件夹?

我正在使用caml查询来选择用户修改或添加的所有文档.查询以递归方式在指定网站集的所有子网站上运行.

现在问题是我无法摆脱也是结果集的一部分的文件夹.现在我正在从结果数据表中过滤它们.但我想知道:是否可以通过使用caml过滤掉结果集中的文件夹?

sharepoint caml

21
推荐指数
4
解决办法
5万
查看次数

SharePoint:如何通过使用列表中的CAML查询获取前5个记录

我已经创建了一个webpart来显示列表中的数据,但我真的希望只显示该列表中的前5个记录(通过使用CAML查询).

有谁知道如何做到这一点?非常感谢.

<Query>
   <OrderBy>
      <FieldRef Name='ID' Ascending='False' />
   </OrderBy>
</Query>
Run Code Online (Sandbox Code Playgroud)

sharepoint caml

18
推荐指数
2
解决办法
4万
查看次数

布尔列的CAML查询无效

嗨我有一个要查询我的桌面应用程序的SharePoint列表,我想只检索活动成员,但是当我查询时,我只获得了不活动的用户.我的CAML查询有什么问题?

camlQuery.ViewXml = "<<"View">><Query><Where><Eq><FieldRef Name='Active'/><Value Type='Boolean'> " + true + "</Value></Eq></Where></Query></View>"";
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下内容

camlQuery.ViewXml = "<View><Query><Where><Eq><FieldRef Name='Active'/><Value Type='Boolean'> true</Value></Eq></Where></Query></View>";
Run Code Online (Sandbox Code Playgroud)

camlQuery.ViewXml = "<Query><Where><Eq><FieldRef Name='Active'/><Value Type='Boolean'> true</Value></Eq></Where></Query>";
Run Code Online (Sandbox Code Playgroud)

请帮忙,因为我是CAML的新手.

c# sharepoint caml

16
推荐指数
1
解决办法
4万
查看次数

使用SPQuery检索不同/唯一值的最佳方法是什么?

我有一个看起来像这样的列表:

Movie          Year
-----          ----
Fight Club     1999
The Matrix     1999
Pulp Fiction   1994
Run Code Online (Sandbox Code Playgroud)

使用CAML和SPQuery对象,我需要从Year列中获取一个不同的项目列表,它将填充下拉控件.

在CAML查询中搜索周围似乎没有这样做的方法.我想知道人们是如何实现这一目标的?

sharepoint caml spquery

15
推荐指数
2
解决办法
5万
查看次数

SharePoint列表使用CONTAINS进行CAML查询

我正在尝试使用webpart中的以下CAML查询来查询SharePoint列表.我已经在U2U CAML查询生成器和Stramit CAML Viewer中测试了查询,它工作正常,只返回匹配的记录,但是当我在我的webpart中使用它时,它返回所有列表项.它让我变得疯狂.这是代码:

string camlQuery = string.Format(@"<Query><Where><Contains><FieldRef Name='Title' /><Value Type='Text'>2</Value></Contains></Where></Query>");

SPQuery query = new SPQuery();
query.Query = camlQuery;
SPListItemCollection items = Articles.GetItems(query);
grid.DataSource = items.GetDataTable();
grid.DataBind();
Run Code Online (Sandbox Code Playgroud)

sharepoint wss caml

13
推荐指数
1
解决办法
5万
查看次数

OCaml仿函数,Haskell类型类和多个派生

众所周知,OCaml具有参数多态性,这导致一些限制.Haskell通过其类型类提供了一种特殊的多态性,在很多情况下显然非常方便.众所周知,OCaml的模块和仿函数系统允许创建一种特殊的多态性.看人妖的伟大最近的答案闪耀这里的实例.

我的观点是,在Haskell中可以创建派生多个类型类的类型.例如 :

data Person = Person { firstName :: String
                 , lastName :: String
                 , age :: Int
                 } deriving (Eq, Show, Read)
Run Code Online (Sandbox Code Playgroud)

定义具有多个功能的类型非常方便(允许类型的值Person支持相等性测试,可打印,并且在给定示例中可读).

我的问题如下:我们可以在OCaml中做同样的事吗?通过简单的我的意思是与语言的地面语法和没有太多的计谋.

举一个具体的例子,假设我们有两个OCaml签名

module type Showable = sig
    type t
    val to_string : t -> string
end

module type Readable = sig
    type t
    val from_string : string -> t
end
Run Code Online (Sandbox Code Playgroud)

的目的是写入一个算符F由它实现两者模块参数化ShowableReadable.

ocaml haskell functional-programming caml functor

13
推荐指数
1
解决办法
623
查看次数

SQL IN中的SQL IN等价物

是否有一种"好的"方法来为SharePoint创建这样的类似的CAML查询?

SELECT *
FROM table
WHERE Id IN (3, 12, ...)
Run Code Online (Sandbox Code Playgroud)

还是我陷入了嵌套<Or>节点的噩梦?


编辑:这是我生成<Or>节点的解决方案.

/// Simulates a SQL 'Where In' clause in CAML
/// </summary>
/// <param name="columnType">Specifies the data type for the value contained by the field.</param>
/// <returns>Nested 'Or' elements portion of CAML query</returns>
public static string CamlIn<T>(string internalFieldName, string columnType, T[] values)
{
    XDocument doc = new XDocument();
    XElement prev = null;
    int index = 0;

    while (index < values.Length)
    {
        XElement element = …
Run Code Online (Sandbox Code Playgroud)

sql sharepoint-2007 caml where-in

12
推荐指数
3
解决办法
7705
查看次数

Sharepoint的CAML查询中的日期时间比较

我正在尝试从sharepoint列表中获取某些项目,具体取决于自定义列中的日期.

我已经建立了我与U2U CAML查询生成器,而这工作,但是当我把它放在我自己的代码在我的WebPart,它总是返回我的所有项目OD列表.

这是我的代码:

DateTime startDate = new DateTime(Int32.Parse(year), 1, 1);
            DateTime endDate = new DateTime(Int32.Parse(year), 12, 31);
            SPQuery q = new SPQuery();
            q.Query = "<Query><Where><And><Geq><FieldRef Name='Publicate Date' /><Value IncludeTimeValue='FALSE' Type='DateTime'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(startDate) + "</Value></Geq><Leq><FieldRef Name='Publicate_x0020_Date' /><Value IncludeTimeValue='FALSE' Type='DateTime'>" + SPUtility.CreateISO8601DateTimeFromSystemDateTime(endDate) + "</Value></Leq></And></Where></Query>";

            SPListItemCollection allItem = library.GetItems(q);
Run Code Online (Sandbox Code Playgroud)

c# sharepoint web-parts caml

12
推荐指数
1
解决办法
2万
查看次数

包含结果集中文件夹的CAML查询

我试图写一个CAML查询执行针对特定SPList,范围限定于特定的文件夹,从该点递归,并返回所有listItems中(其中符合标准)和文件夹.

这是查询的代码,它似乎应该工作(格式化为可读性):

SPQuery query = new SPQuery();
query.Query = "
<Where>
    <Or>
        <Contains>
            <FieldRef Name=\"FileRef\" />
            <Value Type=\"Text\">foo</Value>
        </Contains>
        <Eq>
            <FieldRef Name=\"FSObjType\" />
            <Value Type=\"Lookup\">1</Value>
        </Eq>
    </Or>
</Where>";

query.ViewFields = "
<FieldRef Name=\"CustomField1\" Nullable=\"TRUE\" />
<FieldRef Name=\"CustomField2\" Nullable=\"TRUE\" />
<FieldRef Name=\"CustomField3\" Nullable=\"TRUE\" />
";

query.RowLimit = 500;
query.ViewAttributes = "Scope=\"RecursiveAll\"";
query.Folder = startingFolder;
DataTable dt = myList.GetItems(query).GetDataTable();
Run Code Online (Sandbox Code Playgroud)

所以 - 这只返回ListItems - 没有文件夹.

如果我从查询中删除其他条件,只留下FSObjType=1,我得到一个COM异常"无法完成此操作.请再试一次."

如果我然后删除ViewFields,只留下Scope=RecursiveAllFSObjType=1,我得到一个空的结果集.

sharepoint caml spquery

11
推荐指数
3
解决办法
5万
查看次数