Freigeben über


DbServerSyncProvider.SelectNewAnchorCommand-Eigenschaft

Ruft ein IDbCommand-Objekt mit der Abfrage oder gespeicherten Prozedur ab, die einen neuen Ankerwert aus der Serverdatenbank zurückgibt, oder legt ein solches Objekt fest. Der Anker definiert die obere Grenze für den Satz von Änderungen, der während der aktuellen Sitzung synchronisiert werden soll.

Namespace: Microsoft.Synchronization.Data.Server
Assembly: Microsoft.Synchronization.Data.Server (in microsoft.synchronization.data.server.dll)

Syntax

'Declaration
Public Property SelectNewAnchorCommand As IDbCommand
'Usage
Dim instance As DbServerSyncProvider
Dim value As IDbCommand

value = instance.SelectNewAnchorCommand

instance.SelectNewAnchorCommand = value
public IDbCommand SelectNewAnchorCommand { get; set; }
public:
property IDbCommand^ SelectNewAnchorCommand {
    IDbCommand^ get ();
    void set (IDbCommand^ value);
}
/** @property */
public IDbCommand get_SelectNewAnchorCommand ()

/** @property */
public void set_SelectNewAnchorCommand (IDbCommand value)
public function get SelectNewAnchorCommand () : IDbCommand

public function set SelectNewAnchorCommand (value : IDbCommand)

Eigenschaftenwert

Ein IDbCommand-Objekt, das eine Abfrage oder gespeicherte Prozedur enthält.

Hinweise

Während der aktuellen Synchronisierung stellt der neue Ankerbefehl einen neuen Ankerwert bereit. Alle Änderungen, die nach dem letzten und vor dem neuen empfangenen Ankerwert vorgenommen wurden, werden synchronisiert. Der neue empfangene Anker wird anschließend gespeichert und bei der nächsten Synchronisierung als letzter empfangener Ankerwert verwendet. Weitere Informationen finden Sie im Abschnitt "Ermitteln der auf einen Client herunterzuladenden Datenänderungen" in Änderungsnachverfolgung in der Serverdatenbank.

Beispiel

Das folgende Codebeispiel gibt einen Befehl zum Abrufen eines neuen Ankerwerts vom Server an. In diesem Fall gibt MIN_ACTIVE_ROWVERSION einen Timestampwert aus einer SQL Server-Datenbank zurück. (MIN_ACTIVE_ROWVERSION wurde in SQL Server 2005 Service Pack 2 eingeführt.) Ein Timestampwert wird deshalb verwendet, weil die Nachverfolgungsspalten in der Serverdatenbank Timestampwerte enthalten. Wenn die Nachverfolgungsspalten Datumswerte enthalten, können Sie anstelle von MIN_ACTIVE_ROWVERSION auch eine Funktion wie GETUTCDATE() verwenden. SyncSession enthält mehrere Zeichenfolgenkonstanten, die in Synchronisierungsbefehlen verwendet werden können. Eine dieser Konstanten ist SyncNewReceivedAnchor. Sie können direkt in Ihren Abfragen auch das @sync_new_received_anchor-Literal verwenden. Eine Darstellung dieses Codes im Kontext eines vollständigen Beispiels finden Sie unter Erste Schritte: Client- und Serversynchronisierung.

SqlCommand selectNewAnchorCommand = new SqlCommand();
string newAnchorVariable = "@" + SyncSession.SyncNewReceivedAnchor;
selectNewAnchorCommand.CommandText = "SELECT " + newAnchorVariable + " = min_active_rowversion() - 1";
selectNewAnchorCommand.Parameters.Add(newAnchorVariable, SqlDbType.Timestamp);
selectNewAnchorCommand.Parameters[newAnchorVariable].Direction = ParameterDirection.Output;
selectNewAnchorCommand.Connection = serverConn;
this.SelectNewAnchorCommand = selectNewAnchorCommand;
Dim selectNewAnchorCommand As New SqlCommand()
Dim newAnchorVariable As String = "@" + SyncSession.SyncNewReceivedAnchor
selectNewAnchorCommand.CommandText = "SELECT " + newAnchorVariable + " = min_active_rowversion() - 1"
selectNewAnchorCommand.Parameters.Add(newAnchorVariable, SqlDbType.Timestamp)
selectNewAnchorCommand.Parameters(newAnchorVariable).Direction = ParameterDirection.Output
selectNewAnchorCommand.Connection = serverConn
Me.SelectNewAnchorCommand = selectNewAnchorCommand

Siehe auch

Verweis

DbServerSyncProvider-Klasse
DbServerSyncProvider-Member
Microsoft.Synchronization.Data.Server-Namespace