Programming the SQL Snapshot ActiveX Control
The SQL Snapshot control is implemented as a Microsoft® ActiveX® in-process component. It provides a way to create snapshots, and is used by all types of replication. The control is comparable to the Snapshot Agent. Its primary class, the SQLSnapshot object, creates a snapshot of the specified publication on the specified Distributor.
Dynamic snapshots are supported. There are properties to provide values for the HOST_NAME() and SUSER_SNAME() functions when they appear in the filter criteria of dynamic publications, and to specify the location where the dynamic snapshots are written.
Instantiating the SQL Snapshot Control
This example is a Microsoft® Visual Basic® Sub procedure that creates a snapshot from a publication named FullSnapPublication using the database UE_PublisherDB on Publisher UE_PUBLISHER and saves it on Distributor UE_DISTRIBUTOR. Windows Authentication is used for both the Publisher and Distributor connections. The example shows the snapshot code for a snapshot publication. The code for a merge publication requires the ReplicationType property to be set.
Sub Main()
Dim oSnapCtl As SQLINITXLib.SQLSnapshot
Set oSnapCtl = New SQLINITXLib.SQLSnapshot
oSnapCtl.Publisher = "UE_PUBLISHER"
oSnapCtl.PublisherDatabase = "UE_PublisherDB"
oSnapCtl.PublisherSecurityMode = NT_AUTHENTICATION
oSnapCtl.Publication = "FullSnapPublication"
oSnapCtl.Distributor = "UE_DISTRIBUTOR"
oSnapCtl.DistributorSecurityMode = NT_AUTHENTICATION
oSnapCtl.Initialize
oSnapCtl.Run
oSnapCtl.Terminate
End Sub
Note Include the call to the Terminate method to close connections and release allocated memory.