Share via


SPContentDatabase.GetChanges-Methode (SPChangeToken, SPChangeToken)

Gibt eine Auflistung von Änderungen, die über einen angegebenen Zeitraum protokolliert wurden.

Namespace:  Microsoft.SharePoint.Administration
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
Public Function GetChanges ( _
    changeToken As SPChangeToken, _
    changeTokenEnd As SPChangeToken _
) As SPChangeCollection
'Usage
Dim instance As SPContentDatabase
Dim changeToken As SPChangeToken
Dim changeTokenEnd As SPChangeToken
Dim returnValue As SPChangeCollection

returnValue = instance.GetChanges(changeToken, _
    changeTokenEnd)
public SPChangeCollection GetChanges(
    SPChangeToken changeToken,
    SPChangeToken changeTokenEnd
)

Parameter

Rückgabewert

Typ: Microsoft.SharePoint.SPChangeCollection
Eine Auflistung von SPChange -Objekten, die die Änderungen darstellen.

Hinweise

Die folgenden Regeln gelten für die Änderungstoken, die als Argumente übergeben werden.

  • Falls ein Token auf einen Zeitpunkt verweist, der vor dem Start des aktuellen Änderungsprotokolls liegt, wird von der Methode eine SPException-Ausnahme ausgegeben.

  • Falls der vom zweiten Token angegebene Zeitpunkt vor dem im ersten Token angegebenen Zeitpunkt liegt, wird von der Methode eine leere Auflistung zurückgegeben.

  • Falls das erste Token ein Nullverweis (Nothing in Visual Basic) ist, beginnt die zurückgegebene Änderungsauflistung am Anfang des aktuellen Änderungsprotokolls.

  • Falls das zweite Token ein Nullverweis (Nothing in Visual Basic) ist, enthält die zurückgegebene Änderungsauflistung alle Änderungen nach dem Datum, das vom ersten Änderungstoken angegeben wird, bis die Grenze für eine einzelne Auflistung erreicht ist. Falls in diesem Zeitraum mehr Änderungen aufgetreten sind, wird der erste Batch zurückgegeben.

Hinweis

In der Standardeinstellung behält das Änderungsprotokoll Daten für 60 Tage. Sie können die Aufbewahrungsdauer konfigurieren, indem die ChangeLogRetentionPeriod -Eigenschaft festlegen.

Beispiele

Das folgende Beispiel ist eine Konsolenanwendung, die das Änderungsprotokoll nach Änderungen abfragt, die während eines Zeitraums von sieben Tagen durchgeführt wurde. Klicken Sie dann die Anwendung druckt Informationen zu jeder Änderung in der Konsole angezeigt.

using System;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite siteCollection = new SPSite("https://localhost"))
         {
            using (SPWeb webSite = siteCollection.RootWeb)
            {
               // We need to do this to get an Id. SPContentDatabase.ID property is obsolete.
               SPPersistedObject db = (SPPersistedObject)siteCollection.ContentDatabase;

               SPChangeToken startToken = new SPChangeToken(
                  SPChangeCollection.CollectionScope.ContentDB,
                  db.Id,
                  new DateTime(2008, 11, 17));

               SPChangeToken endToken = new SPChangeToken(
                  SPChangeCollection.CollectionScope.ContentDB,
                  db.Id,
                  new DateTime(2008, 11, 23));

               long total = 0;

               SPChangeCollection changes = 
                  siteCollection.ContentDatabase.GetChanges(startToken, endToken);
               while (changes.Count > 0)
               {
                  total += changes.Count;

                  foreach (SPChange change in changes)
                  {
                     Console.WriteLine("\nDate: {0}", change.Time.ToShortDateString());
                     Console.WriteLine("Object type: {0}", change.GetType().ToString());
                     Console.WriteLine("Change type: {0}", change.ChangeType);
                  }

                  startToken = changes.LastChangeToken;
                  changes = siteCollection.ContentDatabase.GetChanges(startToken, endToken);
               }

               Console.WriteLine("\nTotal changes = {0:#,#}", total);
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}
Imports System
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Administration

Module ConsoleApp
   Sub Main()
      Using siteCollection As SPSite = New SPSite("https://localhost")
         Using webSite As SPWeb = siteCollection.RootWeb

            ' We need to do this to get an Id. SPContentDatabase.ID property is obsolete.
            Dim db As SPPersistedObject = CType(siteCollection.ContentDatabase, SPPersistedObject)

            Dim startToken As New SPChangeToken(SPChangeCollection.CollectionScope.ContentDB, _
                                                db.Id, _
                                                New DateTime(2008, 11, 17))

            Dim endToken As New SPChangeToken(SPChangeCollection.CollectionScope.ContentDB, _
                                              db.Id, _
                                              New DateTime(2008, 11, 23))

            Dim total As Long = 0

            Dim changes As SPChangeCollection = _
               siteCollection.ContentDatabase.GetChanges(startToken, endToken)
            While changes.Count > 0
               total += changes.Count

               For Each change As SPChange In changes

                  Console.WriteLine(vbCrLf + "Date: {0}", change.Time.ToShortDateString())
                  Console.WriteLine("Object type: {0}", change.GetType().ToString())
                  Console.WriteLine("Change type: {0}", change.ChangeType)

               Next change

               startToken = changes.LastChangeToken
               changes = siteCollection.ContentDatabase.GetChanges(startToken, endToken)
            End While

            Console.WriteLine(vbCrLf + "Total changes = {0:#,#}", total)

         End Using
      End Using
      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()
   End Sub
End Module

Siehe auch

Referenz

SPContentDatabase Klasse

SPContentDatabase-Member

GetChanges-Überladung

Microsoft.SharePoint.Administration-Namespace

Weitere Ressourcen

Using the Change Log