MergePublication.GenerateFilters Method
SQL Server 2005
This method supports the SQL Server 2005 infrastructure and is not intended to be used directly from your code.
Namespace: Microsoft.SqlServer.ReplicationAssembly: Microsoft.SqlServer.Rmo (in microsoft.sqlserver.rmo.dll)
// Define the Publisher, publication, and databases. string publicationName = "AdvWorksSalesOrdersMerge"; string publisherName = publisherInstance; string subscriberName = subscriberInstance; string subscriptionDbName = "AdventureWorksReplica"; string publicationDbName = "AdventureWorks"; string hostname = @"adventure-works\garrett1"; //Create connections to the Publisher and Subscriber. ServerConnection subscriberConn = new ServerConnection(subscriberName); ServerConnection publisherConn = new ServerConnection(publisherName); // Create the objects that we need. MergePublication publication; MergePullSubscription subscription; try { // Connect to the Subscriber. subscriberConn.Connect(); // Ensure that the publication exists and that // it supports pull subscriptions. publication = new MergePublication(); publication.Name = publicationName; publication.DatabaseName = publicationDbName; publication.ConnectionContext = publisherConn; if (publication.LoadProperties()) { if ((publication.Attributes & PublicationAttributes.AllowPull) == 0) { publication.Attributes |= PublicationAttributes.AllowPull; } // Define the pull subscription. subscription = new MergePullSubscription(); subscription.ConnectionContext = subscriberConn; subscription.PublisherName = publisherName; subscription.PublicationName = publicationName; subscription.PublicationDBName = publicationDbName; subscription.DatabaseName = subscriptionDbName; subscription.HostName = hostname; // Specify the Windows login credentials for the Merge Agent job. subscription.SynchronizationAgentProcessSecurity.Login = winLogin; subscription.SynchronizationAgentProcessSecurity.Password = winPassword; // Make sure that the agent job for the subscription is created. subscription.CreateSyncAgentByDefault = true; // Create the pull subscription at the Subscriber. subscription.Create(); Boolean registered = false; // Verify that the subscription is not already registered. foreach (MergeSubscription existing in publication.EnumSubscriptions()) { if (existing.SubscriberName == subscriberName && existing.SubscriptionDBName == subscriptionDbName && existing.SubscriptionType == SubscriptionOption.Pull) { registered = true; } } if (!registered) { // Register the local subscription with the Publisher. publication.MakePullSubscriptionWellKnown( subscriberName, subscriptionDbName, SubscriptionSyncType.Automatic, MergeSubscriberType.Local, 0); } } else { // Do something here if the publication does not exist. throw new ApplicationException(String.Format( "The publication '{0}' does not exist on {1}.", publicationName, publisherName)); } } catch (Exception ex) { // Implement the appropriate error handling here. throw new ApplicationException(String.Format( "The subscription to {0} could not be created.", publicationName), ex); } finally { subscriberConn.Disconnect(); publisherConn.Disconnect(); }
Development Platforms
For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.Target Platforms
For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.