Udostępnij za pośrednictwem


Klasa MergeArticle

Reprezentuje artykuł w publikacja korespondencji seryjnej.

Hierarchia dziedziczenia

System.Object
  Microsoft.SqlServer.Replication.ReplicationObject
    Microsoft.SqlServer.Replication.Article
      Microsoft.SqlServer.Replication.MergeArticle

Przestrzeń nazw:  Microsoft.SqlServer.Replication
Zestaw:  Microsoft.SqlServer.Rmo (w Microsoft.SqlServer.Rmo.dll)

Składnia

'Deklaracja
Public NotInheritable Class MergeArticle _
    Inherits Article
'Użycie
Dim instance As MergeArticle
public sealed class MergeArticle : Article
public ref class MergeArticle sealed : public Article
[<SealedAttribute>]
type MergeArticle =  
    class
        inherit Article
    end
public final class MergeArticle extends Article

Typ MergeArticle uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna MergeArticle() Tworzy nowe wystąpienie MergeArticle klasy
Metoda publiczna MergeArticle(String, String, String, ServerConnection) Creates a new instance of the MergeArticle class with the specified name, publication, database, and connection to the instance of Microsoft SQL Server.

Do góry

Właściwości

  Nazwa Opis
Właściwość publiczna AllowInteractiveResolver Pobiera lub ustawia, czy zezwolić na subskrypcji wywołać interaktywne rozpoznawania nazw, gdy występują konflikty podczas synchronizacji.
Właściwość publiczna ArticleId Pobiera wartość Identyfikator artykuł. (Dziedziczony z Article).
Właściwość publiczna ArticleResolver Pobiera lub ustawia przyjazna nazwa niestandardowej mechanizm rozwiązywania konfliktów lub obsługi logika biznesowa podczas synchronizowania artykuł.
Właściwość publiczna CachePropertyChanges Pobiera lub ustawia, czy zmiany właściwości replikacja w pamięci podręcznej, czy stosuje je niezwłocznie. (Dziedziczony z ReplicationObject).
Właściwość publiczna CheckPermissions Pobiera lub ustawia jak sprawdzane są uprawnienia Wydawca przed zmiany są przekazywane od subskrybenta.
Właściwość publiczna ColumnTracking Pobiera lub ustawia jak konflikty są wykrywane podczas synchronizowania wierszy danych.
Właściwość publiczna CompensateForErrors Pobiera lub ustawia, czy akcje kompensacyjnych są pobierane, gdy wystąpią błędy podczas synchronizacji.
Właściwość publiczna ConflictTable Pobiera nazwę tabela, używane do śledzenia konfliktów, które wystąpiły podczas synchronizacji artykuł korespondencji seryjnej.
Właściwość publiczna ConnectionContext Gets or sets the connection to an instance of Microsoft SQL Server. (Dziedziczony z ReplicationObject).
Właściwość chroniona CreateArticleAsHeterogeneous (Dziedziczony z Article).
Właściwość publiczna CreationScript Pobiera lub ustawia nazwę i pełną ścieżka Transact-SQL pliku skryptu, który jest używany do tworzenia obiekt docelowy obiekt subskrybenta. (Dziedziczony z Article).
Właściwość publiczna DatabaseName Pobiera lub ustawia nazwę bazy danych, która zawiera dane i obiekty, które są publikowane w artykuł. (Dziedziczony z Article).
Właściwość publiczna DeleteTracking Pobiera lub ustawia, czy usuwa są replikowane.
Właściwość publiczna Description Pobiera lub ustawia tekstowy opis artykuł. (Dziedziczony z Article).
Właściwość publiczna DestinationObjectName Pobiera lub ustawia obiekt bazy danych jest źródłowa baza danych obiektu dla artykuł przez subskrybenta. (Dziedziczony z Article).
Właściwość publiczna DestinationObjectOwner Pobiera lub ustawia właściciela schematu źródłowa baza danych obiektu dla artykuł przez subskrybenta. (Dziedziczony z Article).
Właściwość publiczna FilterClause Pobiera lub ustawia GDZIE (Transact-SQL) klauzula, która jest filtrowane w celu artykuł poziomo.
Właściwość publiczna IdentityRangeManagementOption Pobiera lub ustawia opcje zarządzania zakres artykuł tożsamości. (Dziedziczony z Article).
Właściwość publiczna IdentityRangeThreshold Pobiera lub ustawia wartość, jaką nowy zakres wartości kolumna tożsamości są przypisane do Wydawca lub subskrybenta. (Dziedziczony z Article).
Właściwość publiczna IsExistingObject Pobiera się, czy obiekt istnieje na serwerze. (Dziedziczony z ReplicationObject).
Właściwość publiczna MultipleColumnUpdate Infrastruktura.
Właściwość publiczna Name Pobiera lub ustawia nazwę artykuł. (Dziedziczony z Article).
Właściwość publiczna PartitionOption Pobiera lub ustawia opcje filtrowania, kiedy artykuł jest filtrowana z zastosowaniem sparametryzowany filtr wierszy.
Właściwość publiczna PreCreationMethod Pobiera lub ustawia akcja do wykonania po opublikowanych obiekt już istnieje w baza danych subskrypcja. (Dziedziczony z Article).
Właściwość publiczna ProcessingOrder Pobiera lub ustawia kolejność przetwarzania artykuł podczas synchronizacji.
Właściwość publiczna PublicationName Pobiera lub ustawia nazwę publikacja, do której należy dany artykuł. (Dziedziczony z Article).
Właściwość publiczna PublisherIdentityRangeSize Dla TransArticle obiekt, pobiera lub ustawia zakres wartości tożsamości przypisane do kolumny tabela Wydawca.Dla MergeArticle obiekt pobiera lub ustawia zakres wartości tożsamości przypisane do kolumny tabela u abonentów, które mają subskrypcje serwera. (Dziedziczony z Article).
Właściwość publiczna ResolverInfo Pobiera lub ustawia dodatkowe dane i parametry, które są używane przez opartą na modelu COM mechanizm rozwiązywania konfliktów.
Właściwość publiczna SchemaOption Pobiera lub ustawia opcje tworzenia artykuł schematu. (Dziedziczony z Article).
Właściwość publiczna SnapshotObjectName Pobiera nazwę obiektu bazy danych, który reprezentuje migawka początkowa danych dla artykuł.
Właściwość publiczna SnapshotObjectOwner Pobiera właściciela obiektu bazy danych, który reprezentuje migawka początkowa danych dla artykuł.
Właściwość publiczna SourceObjectName Pobiera lub ustawia nazwę obiektu bazy danych, który jest publikowana. (Dziedziczony z Article).
Właściwość publiczna SourceObjectOwner Pobiera lub ustawia właściciela obiektu bazy danych, która jest publikowana. (Dziedziczony z Article).
Właściwość publiczna SqlServerName Gets the name of the Microsoft SQL Server instance to which this object is connected. (Dziedziczony z ReplicationObject).
Właściwość publiczna Status Pobiera lub ustawia stan artykuł korespondencji seryjnej.
Właściwość publiczna StreamBlobColumns Pobiera lub ustawia, czy optymalizacji strumienia danych jest używany podczas replikowania kolumn duży obiekt binarny (BLOB).
Właściwość publiczna SubscriberIdentityRangeSize Pobiera lub ustawia maksymalną liczbę nowych wierszy, które mogą być wstawiane do kolumna tożsamości w tabela na subskrybenta przed muszą być przydzielone innym zakres tożsamości. (Dziedziczony z Article).
Właściwość publiczna SubscriberUploadOption Pobiera lub ustawia zachowanie aktualizacji danych na abonenta z subskrypcja kliencka.
Właściwość publiczna Type Pobiera lub ustawia typ artykuł. (Dziedziczony z Article).
Właściwość publiczna UserData Pobiera lub ustawia właściwość obiektu, który umożliwia użytkownikom dołączanie własnych danych do obiektu. (Dziedziczony z ReplicationObject).
Właściwość publiczna VerifyResolverSignature Pobiera lub ustawia opcje weryfikacji podpisu cyfrowego na podstawie COM mechanizm rozwiązywania konfliktów do ustalenia, czy jest on z zaufanego źródło.
Właściwość publiczna VerticalPartition Określa, czy wszystkie kolumny są publikowane w tabela artykuł. (Dziedziczony z Article).

Do góry

Metody

  Nazwa Opis
Metoda publiczna AddMergeJoinFilter Dodaje filtr łączyć artykule korespondencji seryjnej.
Metoda publiczna AddReplicatedColumns Dodaje określonych kolumn do artykuł korespondencji seryjnej.
Metoda publiczna ChangeMergeJoinFilter Zmiany filtr łączyć określoną w artykule korespondencji seryjnej.
Metoda chroniona CheckValidCreation Infrastruktura. (Dziedziczony z Article).
Metoda chroniona CheckValidDefinition Infrastruktura. (Dziedziczony z Article).
Metoda publiczna CommitPropertyChanges Sends all the cached property change statements to the instance of Microsoft SQL Server. (Dziedziczony z ReplicationObject).
Metoda publiczna Create Tworzy nowy artykuł na aktualnie podłączonych wystąpienie z SQL Server na podstawie właściwości bieżącego TransArticle obiektu lub MergeArticle obiektu. (Dziedziczony z Article).
Metoda publiczna Decouple Oddzielono obiekt odwołanie replikacja z serwera. (Dziedziczony z ReplicationObject).
Metoda publiczna EnumMergeJoinFilters Zwraca zdefiniowane filtry łączyć artykuł korespondencji seryjnej.
Metoda publiczna Equals (Dziedziczony z Object).
Metoda chroniona Finalize (Dziedziczony z Object).
Metoda chroniona GetChangeCommand Infrastruktura. (Dziedziczony z ReplicationObject).
Metoda chroniona GetCreateCommand Infrastruktura. (Dziedziczony z ReplicationObject).
Metoda chroniona GetDropCommand Infrastruktura. (Dziedziczony z ReplicationObject).
Metoda publiczna GetHashCode (Dziedziczony z Object).
Metoda publiczna GetType (Dziedziczony z Object).
Metoda publiczna InitializeSharedPropertiesBasedOnExistingArticles Infrastruktura.
Metoda chroniona InternalRefresh Infrastruktura. (Dziedziczony z ReplicationObject).
Metoda publiczna ListReplicatedColumns Zwraca kolumny, które istnieją w pionie partycji artykuł.
Metoda publiczna Load Ładuje właściwości istniejącego obiektu z serwera. (Dziedziczony z ReplicationObject).
Metoda publiczna LoadProperties Ładuje właściwości istniejącego obiektu z serwera. (Dziedziczony z ReplicationObject).
Metoda chroniona MemberwiseClone (Dziedziczony z Object).
Metoda publiczna Refresh Ponownie ładuje właściwości obiektu. (Dziedziczony z ReplicationObject).
Metoda publiczna Remove Usuwa istniejącego artykuł na aktualnie podłączonych wystąpienie z SQL Server na podstawie właściwości bieżącego TransArticle obiektu lub MergeArticle obiektu. (Dziedziczony z Article).
Metoda publiczna RemoveMergeJoinFilter Usuwa określony seryjnej filtr sprzężenia z artykuł.
Metoda publiczna RemoveReplicatedColumns Usuwa istniejące kolumny z artykuł pionowo podzielonym na partycje.
Metoda publiczna Script Generuje Transact-SQL skryptu, który może być wykonany do tworzenia lub usuwania TransArticle obiektu lub MergeArticle obiektu na serwerze. (Dziedziczony z Article).
Metoda publiczna ScriptMergeJoinFilter Zwraca Transact-SQL skrypt scalania filtr łączyć dołączonych do artykuł korespondencji seryjnej.
Metoda publiczna ToString (Dziedziczony z Object).

Do góry

Uwagi

Ten obszar nazw, klasy lub element członkowski jest obsługiwany tylko w wersja 2.0 Microsoft .NET Framework.

Bezpieczeństwo wątków

Wszystkie publiczne statyczne (Shared w Microsoft języka Visual Basic) elementy tego typu są bezpieczne dla operacji wielowątkowe.Nie ma gwarancji, że elementy członkowskie wystąpień będą bezpieczne dla wątków.

Przykłady

W tym przykładzie tworzy trzy artykuły korespondencji seryjnej i ich powiązanych łączyć filtry.

          // Define the Publisher and publication names.
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2008R2";

            // Specify article names.
            string articleName1 = "Employee";
            string articleName2 = "SalesOrderHeader";
            string articleName3 = "SalesOrderDetail";

            // Specify join filter information.
            string filterName12 = "SalesOrderHeader_Employee";
            string filterClause12 = "Employee.BusinessEntityID = " +
                "SalesOrderHeader.SalesPersonID";
            string filterName23 = "SalesOrderDetail_SalesOrderHeader";
            string filterClause23 = "SalesOrderHeader.SalesOrderID = " +
                "SalesOrderDetail.SalesOrderID";

            string salesSchema = "Sales";
            string hrSchema = "HumanResources";

            MergeArticle article1 = new MergeArticle();
            MergeArticle article2 = new MergeArticle();
            MergeArticle article3 = new MergeArticle();
            MergeJoinFilter filter12 = new MergeJoinFilter();
            MergeJoinFilter filter23 = new MergeJoinFilter();

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

            // Create three merge articles that are horizontally partitioned
            // using a parameterized row filter on Employee.BusinessEntityID, which is 
            // extended to the two other articles using join filters. 
            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Create each article. 
                // For clarity, each article is defined separately. 
                // In practice, iterative structures and arrays should 
                // be used to efficiently create multiple articles.

                // Set the required properties for the Employee article.
                article1.ConnectionContext = conn;
                article1.Name = articleName1;
                article1.DatabaseName = publicationDbName;
                article1.SourceObjectName = articleName1;
                article1.SourceObjectOwner = hrSchema;
                article1.PublicationName = publicationName;
                article1.Type = ArticleOptions.TableBased;

                // Define the parameterized filter clause based on Hostname.
                article1.FilterClause = "Employee.LoginID = HOST_NAME()";

                // Set the required properties for the SalesOrderHeader article.
                article2.ConnectionContext = conn;
                article2.Name = articleName2;
                article2.DatabaseName = publicationDbName;
                article2.SourceObjectName = articleName2;
                article2.SourceObjectOwner = salesSchema;
                article2.PublicationName = publicationName;
                article2.Type = ArticleOptions.TableBased;

                // Set the required properties for the SalesOrderDetail article.
                article3.ConnectionContext = conn;
                article3.Name = articleName3;
                article3.DatabaseName = publicationDbName;
                article3.SourceObjectName = articleName3;
                article3.SourceObjectOwner = salesSchema;
                article3.PublicationName = publicationName;
                article3.Type = ArticleOptions.TableBased;

                if (!article1.IsExistingObject) article1.Create();
                if (!article2.IsExistingObject) article2.Create();
                if (!article3.IsExistingObject) article3.Create();

                // Select published columns for SalesOrderHeader.
                // Create an array of column names to vertically filter out.
                // In this example, only one column is removed.
                String[] columns = new String[1];

                columns[0] = "CreditCardApprovalCode";

                // Remove the column.
                article2.RemoveReplicatedColumns(columns);

                // Define a merge filter clauses that filter 
                // SalesOrderHeader based on Employee and 
                // SalesOrderDetail based on SalesOrderHeader. 

                // Parent article.
                filter12.JoinArticleName = articleName1;
                // Child article.
                filter12.ArticleName = articleName2;
                filter12.FilterName = filterName12;
                filter12.JoinUniqueKey = true;
                filter12.FilterTypes = FilterTypes.JoinFilter;
                filter12.JoinFilterClause = filterClause12;

                // Add the join filter to the child article.
                article2.AddMergeJoinFilter(filter12);

                // Parent article.
                filter23.JoinArticleName = articleName2;
                // Child article.
                filter23.ArticleName = articleName3;
                filter23.FilterName = filterName23;
                filter23.JoinUniqueKey = true;
                filter23.FilterTypes = FilterTypes.JoinFilter;
                filter23.JoinFilterClause = filterClause23;

                // Add the join filter to the child article.
                article3.AddMergeJoinFilter(filter23);
            }
            catch (Exception ex)
            {
                // Do error handling here and rollback the transaction.
                throw new ApplicationException(
                    "The filtered articles could not be created", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the Publisher and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"

' Specify article names.
Dim articleName1 As String = "Employee"
Dim articleName2 As String = "SalesOrderHeader"
Dim articleName3 As String = "SalesOrderDetail"

' Specify join filter information.
Dim filterName12 As String = "SalesOrderHeader_Employee"
Dim filterClause12 As String = "Employee.BusinessEntityID = " + _
    "SalesOrderHeader.SalesPersonID"
Dim filterName23 As String = "SalesOrderDetail_SalesOrderHeader"
Dim filterClause23 As String = "SalesOrderHeader.SalesOrderID = " + _
    "SalesOrderDetail.SalesOrderID"

Dim salesSchema As String = "Sales"
Dim hrSchema As String = "HumanResources"

Dim article1 As MergeArticle = New MergeArticle()
Dim article2 As MergeArticle = New MergeArticle()
Dim article3 As MergeArticle = New MergeArticle()
Dim filter12 As MergeJoinFilter = New MergeJoinFilter()
Dim filter23 As MergeJoinFilter = New MergeJoinFilter()

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

' Create three merge articles that are horizontally partitioned
' using a parameterized row filter on Employee.BusinessEntityID, which is 
' extended to the two other articles using join filters. 
Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Create each article. 
    ' For clarity, each article is defined separately. 
    ' In practice, iterative structures and arrays should 
    ' be used to efficiently create multiple articles.

    ' Set the required properties for the Employee article.
    article1.ConnectionContext = conn
    article1.Name = articleName1
    article1.DatabaseName = publicationDbName
    article1.SourceObjectName = articleName1
    article1.SourceObjectOwner = hrSchema
    article1.PublicationName = publicationName
    article1.Type = ArticleOptions.TableBased

    ' Define the parameterized filter clause based on Hostname.
    article1.FilterClause = "Employee.LoginID = HOST_NAME()"

    ' Set the required properties for the SalesOrderHeader article.
    article2.ConnectionContext = conn
    article2.Name = articleName2
    article2.DatabaseName = publicationDbName
    article2.SourceObjectName = articleName2
    article2.SourceObjectOwner = salesSchema
    article2.PublicationName = publicationName
    article2.Type = ArticleOptions.TableBased

    ' Set the required properties for the SalesOrderDetail article.
    article3.ConnectionContext = conn
    article3.Name = articleName3
    article3.DatabaseName = publicationDbName
    article3.SourceObjectName = articleName3
    article3.SourceObjectOwner = salesSchema
    article3.PublicationName = publicationName
    article3.Type = ArticleOptions.TableBased

    ' Create the articles, if they do not already exist.
    If article1.IsExistingObject = False Then
        article1.Create()
    End If
    If article2.IsExistingObject = False Then
        article2.Create()
    End If
    If article3.IsExistingObject = False Then
        article3.Create()
    End If

    ' Select published columns for SalesOrderHeader.
    ' Create an array of column names to vertically filter out.
    ' In this example, only one column is removed.
    Dim columns() As String = New String(0) {}

    columns(0) = "CreditCardApprovalCode"

    ' Remove the column.
    article2.RemoveReplicatedColumns(columns)

    ' Define a merge filter clauses that filter 
    ' SalesOrderHeader based on Employee and 
    ' SalesOrderDetail based on SalesOrderHeader. 

    ' Parent article.
    filter12.JoinArticleName = articleName1
    ' Child article.
    filter12.ArticleName = articleName2
    filter12.FilterName = filterName12
    filter12.JoinUniqueKey = True
    filter12.FilterTypes = FilterTypes.JoinFilter
    filter12.JoinFilterClause = filterClause12

    ' Add the join filter to the child article.
    article2.AddMergeJoinFilter(filter12)

    ' Parent article.
    filter23.JoinArticleName = articleName2
    ' Child article.
    filter23.ArticleName = articleName3
    filter23.FilterName = filterName23
    filter23.JoinUniqueKey = True
    filter23.FilterTypes = FilterTypes.JoinFilter
    filter23.JoinFilterClause = filterClause23

    ' Add the join filter to the child article.
    article3.AddMergeJoinFilter(filter23)

Catch ex As Exception
    ' Do error handling here and rollback the transaction.
    Throw New ApplicationException( _
        "The filtered articles could not be created", ex)
Finally
    conn.Disconnect()
End Try

Ten przykład zmiany i scalania istniejących artykuł skojarzyć obsługa logika biznesowa z artykuł.Aby uzyskać więcej informacji, zobacz temat Jak Wdrożenie obsługi logiki biznesowej korespondencji seryjnej artykuł (Programowanie RMO).

           // 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

Bezpieczeństwo wątków

Wszystkie publiczne statyczny (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Nie ma gwarancji, że elementy członkowskie wystąpień będą bezpieczne dla wątków.