次の方法で共有


Publication.Attributes Property

パブリケーション属性を取得します。値の設定も可能です。

名前空間: Microsoft.SqlServer.Replication
アセンブリ: Microsoft.SqlServer.Rmo (microsoft.sqlserver.rmo.dll 内)

構文

'宣言
Public Property Attributes As PublicationAttributes
public PublicationAttributes Attributes { get; set; }
public:
property PublicationAttributes Attributes {
    PublicationAttributes get ();
    void set (PublicationAttributes value);
}
/** @property */
public PublicationAttributes get_Attributes ()

/** @property */
public void set_Attributes (PublicationAttributes value)
public function get Attributes () : PublicationAttributes

public function set Attributes (value : PublicationAttributes)

プロパティ値

PublicationAttributes 列挙値です。

解説

PublicationAttributes 列挙は、列挙値のビット演算の組み合わせを許可する FlagsAttribute オプションをサポートします。トランザクション パブリケーションまたはスナップショット パブリケーションの既定の属性値、およびマージ パブリケーションの既定の属性値の詳細については、それぞれ、「sp_addpublication (Transact-SQL)」および「sp_addmergepublication (Transact-SQL)」を参照してください。

Attributes プロパティを取得できるのは、パブリッシャ側の固定サーバー ロール sysadmin のメンバ、パブリケーション データベースの固定データベース ロール db_owner のメンバ、またはパブリケーション アクセス リスト (PAL) のユーザーだけです。

Attributes プロパティを設定できるのは、パブリッシャ側の固定サーバー ロール sysadmin のメンバ、またはパブリケーション データベースの固定データベース ロール db_owner のメンバだけです。既存のパブリケーションの Attributes プロパティは、PAL のユーザーが設定できます。

Attributes プロパティを取得すると、sp_helppublication または sp_helpmergepublication を実行したのと同じことになります。

Attributes プロパティを設定すると、sp_addpublicationsp_changepublication または sp_addmergepublicationsp_changemergepublication を実行したのと同じことになります。

この名前空間、クラス、またはメンバは、.NET Framework 2.0 でのみサポートされています。

使用例

// Set the Publisher, publication database, and publication names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks";

ReplicationDatabase publicationDb;
MergePublication publication;

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

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

    // Enable the database for merge publication.                
    publicationDb = new ReplicationDatabase(publicationDbName, conn);
    if (publicationDb.LoadProperties())
    {
        if (!publicationDb.EnabledMergePublishing)
        {
            publicationDb.EnabledMergePublishing = true;
        }
    }
    else
    {
        // Do something here if the database does not exist. 
        throw new ApplicationException(String.Format(
            "The {0} database does not exist on {1}.",
            publicationDb, publisherName));
    }

    // Set the required properties for the merge publication.
    publication = new MergePublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // Enable Web synchronization, if not already enabled.
    if ((publication.Attributes & PublicationAttributes.AllowWebSynchronization) == 0)
    {
        publication.Attributes |= PublicationAttributes.AllowWebSynchronization;
    }

    // Enable pull subscriptions, if not already enabled.
    if ((publication.Attributes & PublicationAttributes.AllowPull) == 0)
    {
        publication.Attributes |= PublicationAttributes.AllowPull;
    }
    
    // Enable Subscriber requested snapshot generation. 
    publication.Attributes |= PublicationAttributes.AllowSubscriberInitiatedSnapshot;

    // Enable anonymous access for Subscribers that cannot make a direct connetion 
    // to the Publisher. 
    publication.Attributes |= PublicationAttributes.AllowAnonymous;

    // Specify the Windows account under which the Snapshot Agent job runs.
    // This account will be used for the local connection to the 
    // Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

    // Explicitly set the security mode for the Publisher connection
    // Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

    if (!publication.IsExistingObject)
    {
        // Create the merge publication and the Snapshot Agent job.
        publication.Create();
        publication.CreateSnapshotAgent();
    }
    else
    {
        throw new ApplicationException(String.Format(
            "The {0} publication already exists.", publicationName));
    }
}

catch (Exception ex)
{
    // Implement custom application error handling here.
    throw new ApplicationException(String.Format(
        "The publication {0} could not be created.", publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks"

Dim publicationDb As ReplicationDatabase
Dim publication As MergePublication

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

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

    ' Enable the database for merge publication.                
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledMergePublishing Then
            publicationDb.EnabledMergePublishing = True
        End If
    Else
        ' Do something here if the database does not exist. 
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist on {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the merge publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Enable Web synchronization, if not already enabled.
    If (publication.Attributes And PublicationAttributes.AllowWebSynchronization) = 0 Then
        publication.Attributes = publication.Attributes _
        Or PublicationAttributes.AllowWebSynchronization
    End If

    ' Enable pull subscriptions, if not already enabled.
    If (publication.Attributes And PublicationAttributes.AllowPull) = 0 Then
        publication.Attributes = publication.Attributes _
        Or PublicationAttributes.AllowPull
    End If

    ' Enable Subscriber requested snapshot generation. 
    publication.Attributes = publication.Attributes _
        Or PublicationAttributes.AllowSubscriberInitiatedSnapshot

    ' Enable anonymous access for Subscribers that cannot 
    ' make a direct connetion to the Publisher. 
    publication.Attributes = publication.Attributes _
        Or PublicationAttributes.AllowAnonymous

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    If Not publication.IsExistingObject Then
        ' Create the merge publication and the Snapshot Agent job.
        publication.Create()
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

Publication Class
Publication Members
Microsoft.SqlServer.Replication Namespace

その他の技術情報

パブリケーションを作成する方法 (RMO プログラミング)