all groups > sql server replication > july 2004 >
You're in the

sql server replication

group:

Implementation of Replication Programmatically.



Implementation of Replication Programmatically. RuchirDhar Dwivedi
7/14/2004 12:23:05 AM
sql server replication:
Hi
I need information about how to implement replication programmitically
on Sql Server(not using Wizard).

Please help me.

Thanks




*** Sent via Developersdex http://www.developersdex.com ***
Re: Implementation of Replication Programmatically. Paul Ibison
7/14/2004 10:01:48 AM
Ruchir,
to create the publication and subscripotion you can use SQL-DMO. Below is an
example script used for transactional. I can't take credit for it - Hilary
Cotter created this script and I took it from another thread.
HTH,
Paul Ibison

Option explicit
Const SQLDMOPubAttrib_AllowAnonymous = 4

Const SQLDMOPubAttrib_AllowPull = 2

Const SQLDMOPubAttrib_ImmediateSync = 16

Const SQLDMOPubAttrib_IndependentAgent = 32

Const SQLDMOPubAttrib_InternetEnabled = 8

Const SQLDMOCreationScript_PrimaryObject =1

Const SQLDMOCreationScript_DRI_Defaults = 2048

Const SQLDMOCreationScript_DRI_ForeignKeys = 512

Const SQLDMOCreationScript_ClusteredIndexes = 16

Const SQLDMOCreationScript_NonClusteredIndexes = 64

Const SQLDMOCreationScript_DRI_Checks = 1024

Const SQLDMOCreationScript_PKUKAsConstraints = 32768

Const SQLDMOCreationScript_UDDTsToBaseTypes = 32

Const SQLDMOTranSubscriber_Default = 0

Const SQLDMOSubscription_Pull = 1

Const SQLDMOSubscription_Anonymous = 2

Const SQLDMOReplSecurity_Normal = 0

Const SQLDMOReplSecurity_Integrated = 1

Const SQLDMOSubscription_All = 3

Dim objServer, objReplication, objSubscriber, _ objReplicationDatabases,
objReplicationDatabase, _

objTransPublications,objTransPublication,objTransArticle, objTransArticles,
objTransSusbcriptions,_ objTransPullSubscription,objTransPullSubscriptions,_

objReplicationSecurity, objJobServer, objJobs, objJob,_ property

set objServer = CreateObject("SQLDMO.SQLServer")

objServer.Connect "hilary2kp", "sa","se1cure#"

set objReplication=objServer.Replication

set objReplicationDatabases=objReplication._

ReplicationDatabases

set objReplicationDatabase=objReplicationDatabases("Pubs")

set objTransPublications=objReplicationDatabase._

TransPublications

set objTransPublication=_

CreateObject("SQLDMO.TransPublication2")

set objTransArticle=CreateObject("SQLDMO.TransArticle2")

with objTransArticle

.Name="authors"

.SourceObjectName="authors"

.SourceObjectOwner="dbo"

.CreationScriptOptions=_

SQLDMOCreationScript_PrimaryObject+_

SQLDMOCreationScript_DRI_Defaults + _

SQLDMOCreationScript_DRI_ForeignKeys + _

SQLDMOCreationScript_ClusteredIndexes + _

SQLDMOCreationScript_DRI_Checks +_

SQLDMOCreationScript_PKUKAsConstraints +_

SQLDMOCreationScript_UDDTsToBaseTypes +_

SQLDMOCreationScript_NonClusteredIndexes

end with

with objTransPublication

.Name="test"

.AltSnapShotFolder="C:\inetpub\ftproot"

.Enabled=TRUE

.FTPAddress="hilary2kp"

.FTPLogin="Anonymous"

.FTPSubdirectory="/ftp"

.PublicationAttributes=SQLDMOPubAttrib_AllowAnonymous+_

SQLDMOPubAttrib_AllowPull+_

SQLDMOPubAttrib_ImmediateSync+_

SQLDMOPubAttrib_IndependentAgent+_

SQLDMOPubAttrib_InternetEnabled

.RetentionPeriod=14

end with

objTransPublications.Add objTransPublication

objTransPublication.TransArticles.Add objTransArticle

'Starting the snapshot job

set objJobServer=objServer.JobServer

set objJobs=objJobServer.Jobs

for each objJob in objJobs

if objJob.JobID=objTranspublication.SnapshotJobID then

objJob.Start

end if

next

set objJob=Nothing

set objJobs=Nothing

set objJobServer=Nothing

set objTransArticle=Nothing

set objTransPublications=Nothing

set objTransPublication=Nothing

set objReplication=Nothing

objServer.Disconnect

objServer.Connect "Hilary2kp\test","sa","se1cure#"

set objReplication=objServer.Replication

set objReplicationDatabases=objReplication._

ReplicationDatabases

set objReplicationDatabase=objReplicationDatabases("sub")

set objTransPullSubscription=_

CreateObject("SQLDMO.TransPullSubscription2")

set objReplicationSecurity=objTransPullSubscription._

DistributorSecurity

objReplicationSecurity.SecurityMode=_

SQLDMOReplSecurity_Normal

objReplicationSecurity.StandardLogin="sa"

objReplicationSecurity.StandardPassword="se1cure#"

with objTransPullSubscription

.FTPAddress="hilary2kp"

.FTPLogin="Anonymous"

.Publisher= "hilary2kp"

.Distributor="hilary2kp"

.DistributorSecurity.SecurityMode=_

SQLDMOReplSecurity_Normal

.DistributorSecurity.StandardLogin="sa"

.DistributorSecurity.StandardPassword="se1cure#"

.PublicationDB="pubs"

.Publication="test"

.PublisherSecurity.SecurityMode=_

SQLDMOReplSecurity_Normal

.PublisherSecurity.StandardLogin="sa"

.PublisherSecurity.StandardPassword="se1cure#"

.SubscriberType = SQLDMOTranSubscriber_Default

.SubscriptionType = SQLDMOSubscription_Anonymous

.PublicationAttributes=SQLDMOPubAttrib_AllowAnonymous+_

SQLDMOPubAttrib_AllowPull+_

SQLDMOPubAttrib_ImmediateSync+_

SQLDMOPubAttrib_IndependentAgent+_

SQLDMOPubAttrib_InternetEnabled

.SubscriberSecurityMode=SQLDMOReplSecurity_Normal

.SubscriberLogin="sa"

.SubscriberPassword="se1cure#"

.UseFTP=True

end with

set objTransPullSubscriptions=objReplicationDatabase._

TransPullSubscriptions

objTransPullSubscriptions.Add objTransPullSubscription

set objTransPullSubscription=Nothing

set objTransPullSubscriptions=Nothing

set objReplicationDatabases=Nothing

set objReplication=Nothing

set objServer=Nothing

AddThis Social Bookmark Button