Exemple #1
0
        static void Main(string[] args)
        {
            if (args.Length != 6 && args.Length != 7)
            {
                Console.Error.Write(
                    "Usage: " +
                    MethodBase.GetCurrentMethod().DeclaringType.Name +
                    " ServerIPAdress ServerDatabaseName ClientIPAdress ClientDatabaseName NewReplication [UserName] [Password] "
                    );
                return;
            }

            string password           = null;
            string serverIPAdress     = args[0];
            string serverDatabaseName = args[1];
            string clientIPAdress     = args[2];
            string clientDatabaseName = args[3];
            string userName           = args[5];
            int    newReplication     = int.Parse(args[4]);

            if (args.Length == 7)
            {
                password = args[6];
            }
            SyncManager mySyncManager = new SyncManager(serverIPAdress,
                                                        serverDatabaseName,
                                                        clientIPAdress,
                                                        clientDatabaseName,
                                                        userName,
                                                        password);

            try
            {
                mySyncManager.ConnectToServerAndClient();

                mySyncManager.SetScopeDescription(userName);
                mySyncManager.InitSyncOrchestrator();

                if (newReplication != 0)
                // we perform a from-zero synchronization
                {
                    mySyncManager.DescribeTableSchema("dbo.ADRESSES");

                    mySyncManager.SetSqlScopeProvisioning(mySyncManager.ServerConn);

                    // Configure the scope and change-tracking infrastructure.
                    mySyncManager.ServerConfig.Apply();

                    // Provision the client database.
                    mySyncManager.SetSqlScopeProvisioning(mySyncManager.ClientSqlConn);

                    mySyncManager.Synchronize();
                }
                else
                // Synchronize Only
                {
                    mySyncManager.Synchronize();
                }
            }
            finally
            {
                mySyncManager.EndAllConnections();
            }
        }