Compartilhar via


Consultar as alterações específicas

A consulta para tipos específicos alteração para um tipo específico do objeto, você deve definir o objeto e a correspondente event(s) do SPChangeQuery T:Microsoft.SharePoint.SPChangeQuery classe. Portanto, a consulta para a adição de qualquer usuário para um site, definir as propriedades P:Microsoft.SharePoint.SPChangeQuery.Add User e Add a true. A definição só Usertrue não recuperar todas as alterações usuário. To query for all types of changes to user objects, you must set the User property and all the possible event properties to true (in other words, Add, Delete, and Update).

Exemplo

O seguinte mostra exemplo de código como a consulta para alterações para um determinado tipo de objeto. Neste maiúsculas e minúsculas, todas as alterações SPUser T:Microsoft.SharePoint.SPUser são consultadas no de conteúdo banco de dados escopo. Na chamar para o GetChanges método Overload:Microsoft.SharePoint.Administration.SPContentDatabase.GetChanges, um objeto SPChangeQuery T:Microsoft.SharePoint.SPChangeQuery é passado que consultas para todos os usuários adicionados no escopo de banco de dados.

                    Dim database As SPContentDatabase = New SPSite("http://siteUrl").ContentDatabase

' Creating a change token using the time stamp.
Dim startTime As DateTime = DateTime.Now.Subtract(TimeSpan.FromDays(1))
Dim startToken As New SPChangeToken(SPChangeCollection.CollectionScope.ContentDB, database.Id, startTime)
Dim changeQuery As New SPChangeQuery(False, False)
changeQuery.User = True
changeQuery.Add = True
changeQuery.ChangeTokenStart = startToken

' Querying for changes at a later time.
changeQuery.ChangeTokenEnd = database.CurrentChangeToken
Dim changes As SPChangeCollection = database.GetChanges(changeQuery)
Dim change As SPChange

For Each change In changes
    Dim userChange As SPChangeUser = CType(change, SPChangeUser)
    ' Use the SPChangeUser properties e.g. Id to retrieve 
    ' the SPUser object if needed.
Next change
                    SPContentDatabase database = new SPSite("http://siteUrl").ContentDatabase;

/* Creating a change token using the time stamp.*/
DateTime startTime = DateTime.Now.Subtract(TimeSpan.FromDays(1));
SPChangeToken startToken = new SPChangeToken(SPChangeCollection.CollectionScope.ContentDB, database.Id, startTime);
SPChangeQuery changeQuery = new SPChangeQuery(false, false);
changeQuery.User = true;
changeQuery.Add = true;
changeQuery.ChangeTokenStart = startToken;

/* Querying for changes at a later time.*/
changeQuery.ChangeTokenEnd = database.CurrentChangeToken;
SPChangeCollection changes = database.GetChanges(changeQuery);
foreach (SPChange change in changes)
{
    SPChangeUser userChange = (SPChangeUser)change;
    /* Use the SPChangeUser properties (e.g. Id) to retrieve 
    the SPUser object if needed.*/
}