Пошаговое руководство. Провизионирование другого клиента SQL Compact на основе инициализации с помощью моментального снимка
Инициализация моментальных снимков используется для уменьшения времени, необходимого для инициализации клиентской базы данных. После того как одна клиентская база данных инициализирована путем полной инициализации, другие базы данных можно инициализировать с использованием моментального снимка первой клиентской базы данных. Моментальный снимок — это специально подготовленная база данных SQL Server Compact, содержащая схему таблиц, данные (не обязательно) и инфраструктуру отслеживания изменений. В ходе первого сеанса синхронизации нового клиента с сервером обновляются метаданные, относящиеся к клиенту, и все изменения, произошедшие на сервере с момента создания моментального снимка, загружаются в клиентскую базу данных.
![]() |
---|
Моментальные снимки следует создавать только во время, когда в базе данных SQL Server Compact не выполняются никакие действия. Выполнение операций любого типа параллельно с созданием моментального снимка не поддерживается. |
В пошаговом руководстве Пошаговое руководство. Провизионирование клиента SQL Compact создается компактная база данных SQL Server SyncCompactDB, которая синхронизируется с серверной базой данных SyncDB. В этом пошаговом руководстве будет создано приложение командной строки, которое создает и инициализирует вторую компактную базу данных SQL Server путем использования моментального снимка базы данных SyncCompactDB.
Создание моментальных снимков первых клиентов для создания вторых клиентов
В Visual Studio в обозревателе решений щелкните правой кнопкой мыши Решение «SyncSQLServerAndSQLCompact», выберите Добавить и выберите Создать проект.
Выберите Visual C# в Типы проектов и выберите Приложение командной строки в Шаблоны.
Укажите ProvisionSecondCompactClient в качестве имени проекта.
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Создать проект.
В обозревателе решений щелкните правой кнопкой мыши ProvisionSecondCompactClient и выберите Добавить ссылку.
Выберите Microsoft.Synchronization, Microsoft.Synchornization.Data, Microsoft.Synchronization.Data.SqlServer, Microsoft.Synchronization.Data.SqlServerCe и нажмите кнопку ОК, чтобы закрыть диалоговое окно Добавить ссылку.
Повторите два предыдущих шага, чтобы добавить ссылку к сборке System.Data.SqlServerCe.
Добавьте следующие инструкции using в начало файла Program.cs после имеющихся инструкций using.
using System.Data; using System.Data.SqlClient; using System.Data.SqlServerCe; using Microsoft.Synchronization; using Microsoft.Synchronization.Data; using Microsoft.Synchronization.Data.SqlServer; using Microsoft.Synchronization.Data.SqlServerCe;
Добавьте следующий код к методу Main, чтобы создать соединение SQL с компактной базой данных.
// connect to the first compact client DB SqlCeConnection clientConn = new SqlCeConnection(@"Data Source='C:\SyncSQLServerAndSQLCompact\SyncCompactDB.sdf'");
Добавьте следующий код к методу Main, чтобы создать моментальный снимок этой базы данных. В этом коде создается объект SqlCeSyncStoreSnapshotInitialization, на котором вызывается метод GenerateSnapshot(SqlCeConnection, String) для использования моментального снимка базы данных SyncCompactDB при создании и инициализации второй компактной базы данных SQL Server с именем SyncCompactDB2.
// create a snapshot of SyncCompactDB and save it to SyncCompactDB2 database SqlCeSyncStoreSnapshotInitialization syncStoreSnapshot = new SqlCeSyncStoreSnapshotInitialization(); syncStoreSnapshot.GenerateSnapshot(clientConn, @"C:\SyncSQLServerAndSQLCompact\SyncCompactDB2.sdf");
В обозревателе решений щелкните правой кнопкой мыши ProvisionSecondCompactClient и выберите команду Построить.
В обозревателе решений щелкните правой кнопкой мыши ProvisionSecondCompactClient и выберите команду Назначить запускаемым проектом.
Внимание!
Если этот шаг не выполнить, то при повторном нажатии клавиш Ctrl+F5 будет выполнено приложение ExecuteCompactSync.
Нажмите клавиши Ctrl+F5, чтобы выполнить программу.
Нажмите ВВОД, чтобы закрыть окно командной строки.
Убедитесь, что создана вторая база данных.
В следующем списке перечислены операции, которые необходимо выполнить, чтобы подтвердить создание второй компактной базы данных с именем SyncCompactDB2.
В среде SQL Server Management Studio в меню Файл выберите Подключить к обозревателю объектов.
В диалоговом окне Соединение с сервером выберите SQL Server Compact Edition как Тип сервера.
Укажите C:\SyncSQLServerAndSQLCompact\SyncCompactDB2.sdf как Файл базы данных и нажмите кнопку Подключить.
В обозревателе объектов разверните Таблицы (ниже SQL Server Compact [Мой компьютер\...\SyncCompactDB2]) и убедитесь, что существует таблица Products и таблицы отслеживания изменений.
Выберите SQL Server Compact [Мой компьютер\...\SyncCompactDB2] в обозревателе объектов.
На панели инструментов нажмите кнопку Создать запрос.
Введите и выполните следующую команду SQL, чтобы подтвердить наличие в таблице Products записей, скопированных с первого клиента.
select * from Products
Не закрывайте Visual Studio и среду SQL Server Management Studio.
Полный пример кода
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlServerCe;
using Microsoft.Synchronization;
using Microsoft.Synchronization.Data;
using Microsoft.Synchronization.Data.SqlServer;
using Microsoft.Synchronization.Data.SqlServerCe;
namespace ProvisionSecondCompactClient
{
class Program
{
static void Main(string[] args)
{
// connect to the first compact client DB
SqlCeConnection clientConn = new SqlCeConnection(@"Data Source='C:\SyncSQLServerAndSQLCompact\SyncCompactDB.sdf'");
// create a snapshot of SyncCompactDB and save it to SyncCompactDB2 database
SqlCeSyncStoreSnapshotInitialization syncStoreSnapshot = new SqlCeSyncStoreSnapshotInitialization();
syncStoreSnapshot.GenerateSnapshot(clientConn, @"C:\SyncSQLServerAndSQLCompact\SyncCompactDB2.sdf");
}
}
}
См. также
Другие ресурсы
Как настроить и выполнить синхронизацию базы данных (SQL Server)