協作應用程式標記語言 CAML 點滴(一)

weixin_30639719發表於2020-04-05
 

CAML(Collaborative Application Markup Language) 早在2001Sharepoint 2001 Team Service (WSS的第一個版本)就出現了。記得當時也算轟動一時,直到現在MOSS 2007還是依然健在,相比之下同時一起出來的PKM早已被OM取代,改的面目全非。當然現在開發MOSS2007.要麼選擇OM,要麼選擇web service。用到CAML的場景應該不多。

先來看看CAML的最簡單的用法:

MOSS2007的基本配置如下:(全部是預設值)
伺服器名:devweb4
Site名:testcaml
List : mylist
View名:All Items

visual studio 生成一個console application. 原始碼如下:

 

Imports Microsoft.SharePoint

 

Module Caml

 

    Sub Main(ByVal args() As String)

        Dim ServerName As String = args(0)

        Dim SiteName As String = args(1)

        Dim listName As String = args(2)

        Dim viewName As String = args(3)

        Dim site As SPSite = New SPSite(ServerName)

        Dim web As SPWeb = site.OpenWeb(siteName)

 

        Dim myList As SPList = web.Lists(listName)

        Dim query As SPQuery = New SPQuery(myList.Views(viewName))

        System.Diagnostics.Debug.WriteLine(query.ViewXml)

        Console.WriteLine(query.ViewXml)

        Console.ReadLine()

 

    End Sub

 

End Module


四個引數分別是
伺服器名:devweb4Site名:testcaml List :  mylist View名:All Items

 

執行命令:Caml “http://devweb4/” “testcaml” “mylist” “All Items”

 

得到以下結果 (一個XML

 

<Query>

       <OrderBy>

              <FieldRef Name="ID" />

       </OrderBy>

</Query>

<ViewFields>

       <FieldRef Name="Attachments" />

       <FieldRef Name="LinkTitle" />

</ViewFields>

<RowLimit>100</RowLimit>

</View>

 

如果為“All Items” (View)選擇更多的field, 就會有更多<FieldRef Name="<field name>" />出現。

 

上面的xml構成了CAML檢索的基礎

 

下面是一個典型的檢索

 

<Query>

<OrderBy>

<FieldRef Name=”Title” />

</OrderBy>

<Where>

<Lt>

<FieldRef Name=”StartDate” />

<Value Type=”DateTime”>2007-01-01T00:00:00Z</Value>

</Lt>

</Where>

</Query>

Title為序,檢索所有的startdate小於2007/01/01的專案。

 

posted on 2007-06-26 07:43 by1455 閱讀(...) 評論(...) 編輯 收藏

轉載於:https://www.cnblogs.com/by1455/archive/2007/06/26/795713.html

相關文章