ПКРПСиБД LAB10 Бочаров И.А. (548560), страница 2
Текст из файла (страница 2)
else if (selection.Equals("s"))
Synchronize();
else if (selection.Equals("d"))
DeleteSync();
Console.Write("Еще запрос? (y/n): ");
answer = Console.ReadLine();
}
while (answer.Equals("y"));
}
public static void SetupSync()
{
SqlConnection serverConn = new SqlConnection(@"Data Source=.\; Initial Catalog=SyncDB; Trusted_Connection=Yes");
SqlConnection clientConn = new SqlConnection(@"Server=.\; Initial Catalog=SyncClientDB; Trusted_Connection=Yes");
DbSyncScopeDescription namesScope = new DbSyncScopeDescription("names");
Collection
includeColumns.Add("key");
includeColumns.Add("value");
DbSyncTableDescription nameDescription =
SqlSyncDescriptionBuilder.GetDescriptionForTable("dbo.SyncTable",
includeColumns, serverConn);
namesScope.Tables.Add(nameDescription);
SqlSyncScopeProvisioning serverProvision = new SqlSyncScopeProvisioning(serverConn, namesScope);
if (!serverProvision.ScopeExists("names"))
serverProvision.Apply();
SqlSyncScopeProvisioning clientProvision = new SqlSyncScopeProvisioning(clientConn, namesScope);
if (!clientProvision.ScopeExists("names"))
clientProvision.Apply();
serverConn.Close();
serverConn.Dispose();
clientConn.Close();
clientConn.Dispose();
}
public static void Synchronize()
{
SqlConnection serverConn = new SqlConnection(@"Data Source=.\; Initial Catalog=SyncDB; Trusted_Connection=Yes");
SqlConnection clientConn = new SqlConnection(@"Data Source=.\; Initial Catalog=SyncClientDB; Trusted_Connection=Yes");
SyncOrchestrator syncOrchestrator = new SyncOrchestrator();
SqlSyncProvider serverProvider = new SqlSyncProvider("names", serverConn);
SqlSyncProvider clientProvider = new SqlSyncProvider("names", clientConn);
syncOrchestrator.LocalProvider = serverProvider;
syncOrchestrator.RemoteProvider = clientProvider;
syncOrchestrator.Direction = SyncDirectionOrder.UploadAndDownload;
SyncOperationStatistics syncStats = syncOrchestrator.Synchronize();
Console.WriteLine("Синхронизация началсь: " + syncStats.SyncStartTime);
Console.WriteLine("В клиентскую базу данных было внесено " + syncStats.UploadChangesTotal + " изменений");
Console.WriteLine("В основную базу данных было внесено " + syncStats.DownloadChangesTotal+ " изменений");
Console.WriteLine("Время завершения синхронизации: " + syncStats.SyncEndTime);
serverConn.Close();
serverConn.Dispose();
clientConn.Close();
clientConn.Dispose();
}
public static void DeleteSync()
{
SqlConnection serverConn = new SqlConnection(@"Data Source=.\; Initial Catalog=SyncDB; Trusted_Connection=Yes");
SqlConnection clientConn = new SqlConnection(@"Data Source=.\; Initial Catalog=SyncClientDB; Trusted_Connection=Yes");
SqlSyncScopeDeprovisioning serverSqlDepro = new SqlSyncScopeDeprovisioning(serverConn);
SqlSyncScopeDeprovisioning clientSqlDepro = new SqlSyncScopeDeprovisioning(clientConn);
serverSqlDepro.DeprovisionScope("names");
serverSqlDepro.DeprovisionStore();
clientSqlDepro.DeprovisionScope("names");
clientSqlDepro.DeprovisionStore();
serverConn.Close();
serverConn.Dispose();
clientConn.Close();
clientConn.Dispose();
}
}
}














