|
SQLDMO:
Transactional Publication and Push Subscription
Dim objServer As New SQLDMO.SQLServer
Dim objTransPublications As SQLDMO.TransPublications
Dim objTransArticle As New SQLDMO.TransArticle2
Dim objTransPullSubscription As New SQLDMO.TransPullSubscription2
Dim objReplication As SQLDMO.Replication
Dim objSubscriber As SQLDMO.Subscriber2
Dim objReplicationDatabases As SQLDMO.ReplicationDatabases
Dim objReplicationSubDatabase As SQLDMO.ReplicationDatabase2
Dim objReplicationPubDatabase As SQLDMO.ReplicationDatabase2
Dim objTransPublication As New SQLDMO.TransPublication2
Dim objTransArticles As SQLDMO.TransArticles
Dim objTransSusbcriptions As SQLDMO.TransSubscriptions
Dim objTransPullSubscriptions As SQLDMO.TransPullSubscriptions
Dim objTransSubscription As New SQLDMO.TransSubscription2
Dim objReplicationSecurity As SQLDMO.ReplicationSecurity
Dim objJobServer As SQLDMO.JobServer2
Dim objJobs As SQLDMO.Jobs
Dim objJob As New SQLDMO.Job
objServer.Connect("PLL-DT-16", "sa", "sa")
objReplication = objServer.Replication
objReplicationDatabases = objReplication.ReplicationDatabases
objReplicationPubDatabase = objReplicationDatabases.Item("Northwind")
objTransPublications = objReplicationPubDatabase.TransPublications
With objTransArticle
.Name = "Region"
.SourceObjectName = "Region"
.SourceObjectOwner = "dbo"
.CreationScriptOptions = SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_PrimaryObject + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_DRI_Defaults + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_DRI_ForeignKeys + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_ClusteredIndexes + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_DRI_Checks + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_PKUKAsConstraints + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_UDDTsToBaseTypes + _
SQLDMO_CREATIONSCRIPT_TYPE.SQLDMOCreationScript_NonClusteredIndexes
End With
With objTransPublication
.Name = "test"
.Enabled = True
.PublicationAttributes = SQLDMO_PUBATTRIB_TYPE.SQLDMOPubAttrib_AllowAnonymous + _
SQLDMO_PUBATTRIB_TYPE.SQLDMOPubAttrib_AllowPull + _
SQLDMO_PUBATTRIB_TYPE.SQLDMOPubAttrib_AllowPush + _
SQLDMO_PUBATTRIB_TYPE.SQLDMOPubAttrib_ImmediateSync + _
SQLDMO_PUBATTRIB_TYPE.SQLDMOPubAttrib_IndependentAgent
.RetentionPeriod = 14
End With
objTransPublications.Add(objTransPublication)
objTransPublication.TransArticles.Add(objTransArticle)
'Starting the snapshot job
objJobServer = objServer.JobServer
objJobs = objJobServer.Jobs
For Each objJob In objJobs
If objJob.JobID = objTransPublication.SnapshotJobID Then
objJob.Start()
End If
Next
objReplicationSubDatabase = objReplicationDatabases.Item("testrep")
With objTransSubscription
.Subscriber = "PLL-DT-16"
.SubscriptionDB = "testrep"
End With
objTransPublication.TransSubscriptions.Add(objTransSubscription)
objJob = Nothing
objJobs = Nothing
objJobServer = Nothing
objTransArticle = Nothing
objTransPublications = Nothing
objTransPublication = Nothing
objTransPullSubscription = Nothing
objTransPullSubscriptions = Nothing
objReplicationDatabases = Nothing
objReplication = Nothing
objServer.DisConnect()
objServer = Nothing |