Share via


MergeArticle.ArticleResolver プロパティ

定義

アーティクルの同期に使用されるカスタム競合回避モジュールまたはビジネス ロジック ハンドラーの表示名を取得します。値の設定も可能です。

public:
 property System::String ^ ArticleResolver { System::String ^ get(); void set(System::String ^ value); };
public string ArticleResolver { get; set; }
member this.ArticleResolver : string with get, set
Public Property ArticleResolver As String

プロパティ値

String 値。

// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
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 = "AdventureWorks2012"
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

注釈

このプロパティは ArticleResolver 、パブリッシャーとサブスクライバーの sysadmin 固定サーバー ロールのメンバーによって取得できます (サブスクライバーの再発行用)。 また、パブリケーション データベースの db_owner 固定データベース ロールのメンバー、ディストリビューターの replmonitor 固定データベース ロールのメンバー、およびパブリケーション アクセス リスト (PAL) のメンバーであるユーザーによって取得することもできます。

このプロパティは ArticleResolver 、パブリッシャーの sysadmin 固定サーバー ロールのメンバーによって設定できます。 パブリケーション データベースの固定データベース ロール db_owner メンバーによって設定することもできます。

ArticleResolver取得は、sp_helpmergearticleの実行 (Transact-SQL) と同じです。

設定 ArticleResolver は、 sp_addmergearticle (Transact-SQL) または sp_changemergearticle (Transact-SQL) の実行と同じです。

適用対象