Udostępnij za pośrednictwem


Jak Wyświetlanie i modyfikowanie właściwości artykułu (Programowanie RMO)

Można modyfikować artykułów i uzyskiwać dostęp do ich właściwości programowo przy użyciu obiektów zarządzania replikacji (RMO).Służy do wyświetlania lub modyfikowania właściwości artykuł klas RMO zależą od typu publikacja, do której należy artykuł.

Aby wyświetlić lub zmodyfikować właściwości artykuł należącego do migawka lub transakcyjnych publikacja

  1. Tworzenie połączenia do Wydawca za pomocą ServerConnection klasy

  2. Utworzenie wystąpienie TransArticle klasy

  3. Ustaw Name, PublicationName, i DatabaseName Właściwości.

  4. Ustawić połączenie z kroku 1 dla ConnectionContext właściwość.

  5. Wywołanie LoadProperties metoda, aby pobrać właściwości obiektu.Jeśli ta metoda zwraca false, artykuł nie istnieje albo niepoprawnie zostały zdefiniowane właściwości artykuł w kroku 3.

  6. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednego z TransArticle Właściwości, które mogą być zestaw.

  7. (Opcjonalnie) Jeżeli określono wartość true dla CachePropertyChanges, call CommitPropertyChanges metoda zatwierdzanie zmian na serwerze.Jeżeli określono wartość false dla CachePropertyChanges (domyślnie), zmiany są wysyłane do serwera natychmiast.

Aby wyświetlić lub zmodyfikować właściwości artykuł, który należy do publikacja korespondencji seryjnej

  1. Tworzenie połączenia do Wydawca za pomocą ServerConnection klasy

  2. Utworzenie wystąpienie MergeArticle klasy

  3. Ustaw Name, PublicationName, i DatabaseName Właściwości.

  4. Ustawić połączenie z kroku 1 dla ConnectionContext właściwość.

  5. Wywołanie LoadProperties metoda, aby pobrać właściwości obiektu.Jeśli ta metoda zwraca false, artykuł nie istnieje albo niepoprawnie zostały zdefiniowane właściwości artykuł w kroku 3.

  6. (Opcjonalnie) Aby zmienić właściwości, ustaw nową wartość dla jednego z MergeArticle Właściwości, które mogą być zestaw.

  7. (Opcjonalnie) Jeżeli określono wartość true dla CachePropertyChanges, call CommitPropertyChanges metoda zatwierdzanie zmian na serwerze.Jeżeli określono wartość false dla CachePropertyChanges (domyślnie), zmiany są wysyłane do serwera natychmiast.

Przykład

Artykuł korespondencji seryjnej, aby określić zmiany w tym przykładzie obsługa logika biznesowa używane w artykule.

           // Define the Publisher, publication, and article names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2008R2";
            string articleName = "SalesOrderHeader";
            
            // Set the friendly name of the business logic handler.
            string customLogic = "OrderEntryLogic";

            MergeArticle article = new MergeArticle();
            
            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Set the required properties for the article.
                article.ConnectionContext = conn;
                article.Name = articleName;
                article.DatabaseName = publicationDbName;
                article.PublicationName = publicationName;

                // Load the article properties.
                if (article.LoadProperties())
                {
                    article.ArticleResolver = customLogic;
                }
                else
                {
                    // Throw an exception of the article does not exist.
                    throw new ApplicationException(String.Format(
                    "{0} is not published in {1}", articleName, publicationName));
                }
                
            }
            catch (Exception ex)
            {
                // Do error handling here and rollback the transaction.
                throw new ApplicationException(String.Format(
                    "The business logic handler {0} could not be associated with " +
                    " the {1} article.",customLogic,articleName), ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim articleName As String = "SalesOrderHeader"

' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"

Dim article As MergeArticle = New MergeArticle()

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the article.
    article.ConnectionContext = conn
    article.Name = articleName
    article.DatabaseName = publicationDbName
    article.PublicationName = publicationName

    ' Load the article properties.
    If article.LoadProperties() Then
        article.ArticleResolver = customLogic
    Else
        ' Throw an exception of the article does not exist.
        Throw New ApplicationException(String.Format( _
         "{0} is not published in {1}", articleName, publicationName))
    End If

Catch ex As Exception
    ' Do error handling here and rollback the transaction.
    Throw New ApplicationException(String.Format( _
     "The business logic handler {0} could not be associated with " + _
     " the {1} article.", customLogic, articleName), ex)
Finally
    conn.Disconnect()
End Try