Поделиться через


Метод SPContentDatabase.GetChanges (SPChangeToken)

Возвращает коллекцию изменений базы данных контента, начиная с указанной даты.

Пространство имен:  Microsoft.SharePoint.Administration
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public Function GetChanges ( _
    changeToken As SPChangeToken _
) As SPChangeCollection
'Применение
Dim instance As SPContentDatabase
Dim changeToken As SPChangeToken
Dim returnValue As SPChangeCollection

returnValue = instance.GetChanges(changeToken)
public SPChangeCollection GetChanges(
    SPChangeToken changeToken
)

Параметры

  • changeToken
    Тип: Microsoft.SharePoint.SPChangeToken

    Объект SPChangeToken , указывающий дату и время начала. Если маркера ссылаются на время до начала текущего журнала изменений, SPException исключение.

Возвращаемое значение

Тип: Microsoft.SharePoint.SPChangeCollection
Коллекция объектов SPChange , представляющих изменения.

Замечания

Можно получить объект SPChangeToken для передачи как аргумент этот метод путем извлечения одного из свойства ChangeToken возвращаемые предыдущий вызов метода GetChanges последнего изменения. Или можно использовать конструктор SPChangeToken для создания нового маркера изменения.

Примечание

По умолчанию журнал изменений сохраняются данные на 60 дней. Период хранения можно настроить с помощью свойства ChangeLogRetentionPeriod .

Примеры

Следующий пример является консольное приложение, в котором показано получение всех изменений в журнале. Программа циклически при получении изменений в пакетах и разрывов из цикла, когда он получает коллекцию с нуля участниками, указывающий на то, что он достигнут конец списка.

using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("https://localhost"))
         {
            long total = 0;
            SPChangeToken token = null;

            SPChangeCollection changes = site.ContentDatabase.GetChanges(token);
            while (changes.Count > 0)
            {
               total += changes.Count;

               foreach (SPChange change in changes)
               {
                  // Process change.
                  Console.WriteLine("Date: {0}  Type of object: {1}  Type of change: {2}", 
                     change.Time.ToShortDateString(), change.GetType().ToString(), change.ChangeType);
               }

               token = changes.LastChangeToken;
               changes = site.ContentDatabase.GetChanges(token);
            }

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

Module ConsoleApp
   Sub Main()
      Using site As SPSite = New SPSite("https://localhost")

         Dim total As Long = 0
         Dim token As SPChangeToken = Nothing

         Dim changes As SPChangeCollection = site.ContentDatabase.GetChanges(token)
         While changes.Count > 0
            total += changes.Count

            For Each change As SPChange In changes
               ' Process change.
                  Console.WriteLine("Date: {0}  Type of object: {1}  Type of change: {2}", _
                     change.Time.ToShortDateString(), change.GetType().ToString(), change.ChangeType)
            Next change

            token = changes.LastChangeToken
            changes = site.ContentDatabase.GetChanges(token)
         End While

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

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

End Module

См. также

Справочные материалы

SPContentDatabase класс

Элементы SPContentDatabase

Перегрузка GetChanges

Пространство имен Microsoft.SharePoint.Administration

Другие ресурсы

Using the Change Log