Поделиться через


Как создать базу данных с помощью объекта Replication (программно)

В этом разделе описывается программный способ создания базы данных Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) с помощью метода AddSubscription объекта SqlServerCe.Replication. Дополнительные сведения об использовании пространства имен SqlServerCe см. в справочной документации по пространству имен SqlServerCe.

Процедуры SQL Server Compact 3.5

Создание базы данных с помощью объекта Replication

  1. Инициализируйте новый объект Replication.

    SqlCeReplication repl = new SqlCeReplication();
    
  2. Настройте свойства объекта Replication. Эти свойства могут включать данные, необходимые для установления соединения с издателем SQL Server. В свойстве SubscriberConnectionString указывается имя и размещение файла создаваемой базы данных.

    repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";
    repl.InternetUrl = "https://www.adventure-works.com/" + 
         "sqlmobile/sqlcesa35.dll";
    repl.InternetLogin = "MyInternetLogin";
    repl.InternetPassword = "<password>";
    repl.Publisher = "MyPublisher";
    repl.PublisherDatabase = "MyPublisherDatabase";
    repl.PublisherLogin = "MyPublisherLogin";
    repl.PublisherPassword = "<password>";
    repl.Publication = "MyPublication";
    repl.Subscriber = "MySubscriber";
    
  3. Вызовите метод AddSubscription, передав в него параметр AddOption.CreateDatabase.

    repl.AddSubscription(AddOption.CreateDatabase);
    

Создание базы данных с учетом регистра с помощью объекта Replication

  1. Инициализируйте новый объект Replication.

    SqlCeReplication repl = new SqlCeReplication();
    
  2. Настройте свойства объекта Replication. Эти свойства могут включать данные, необходимые для установления соединения с издателем SQL Server. В свойстве SubscriberConnectionString указывается имя и размещение файла создаваемой базы данных. Кроме того, свойство SubscriberConnectionString поддерживает новое свойство «Case sensitive». Это свойство используется для создания базы данных подписки с учетом регистра. Дополнительные сведения о базах данных с учетом регистра см. в разделе Работа с параметрами сортировки (SQL Server Compact).

    repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf; LCID=1033; Case Sensitive=true";
    repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll";
    repl.InternetLogin = "MyInternetLogin";
    repl.InternetPassword = "<password>";
    repl.Publisher = "MyPublisher";
    repl.PublisherDatabase = "MyPublisherDatabase";
    repl.PublisherLogin = "MyPublisherLogin";
    repl.PublisherPassword = "<password>";
    repl.Publication = "MyPublication";
    repl.Subscriber = "MySubscriber";
    
  3. Вызовите метод AddSubscription, передав в него параметр AddOption.CreateDatabase.

    repl.AddSubscription(AddOption.CreateDatabase);
    

Пример

В приведенном примере показано, как создать новую базу данных путем создания объекта Replication, настройки свойств базы данных и подписки и вызова метода AddSubscription.

SqlCeReplication repl = null;
        try
        {
            // Instantiate and configure SqlCeReplication object
            //
            repl = new SqlCeReplication();
            repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll";
            repl.InternetLogin = "MyInternetLogin";
            repl.InternetPassword = "<password>";
            repl.Publisher = "MyPublisher";
            repl.PublisherDatabase = "MyPublisherDatabase";
            repl.PublisherLogin = "MyPublisherLogin";
            repl.PublisherPassword = "<password>";
            repl.Publication = "MyPublication";
            repl.Subscriber = "MySubscriber";
            repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf";

            // Create a local database subscription
            //
            repl.AddSubscription(AddOption.CreateDatabase);

            // Synchronize to the SQL Server database
            //
            repl.Synchronize();
        }
        catch (SqlCeException)
        {
            // Handle errors here
            //
        }
        finally
        {
            // Dispose the repl object
            //
            repl.Dispose();
        }
Dim repl As SqlCeReplication = Nothing
        Try
            ' Instantiate and configure SqlCeReplication object
            '
            repl = New SqlCeReplication()
            repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll"
            repl.InternetLogin = "MyInternetLogin"
            repl.InternetPassword = "<password>"
            repl.Publisher = "MyPublisher"
            repl.PublisherDatabase = "MyPublisherDatabase"
            repl.PublisherLogin = "MyPublisherLogin"
            repl.PublisherPassword = "<password>"
            repl.Publication = "MyPublication"
            repl.Subscriber = "MySubscriber"
            repl.SubscriberConnectionString = "Data Source=MyDatabase.sdf"

            ' Create the local database subscription
            '
            repl.AddSubscription(AddOption.CreateDatabase)

            ' Synchronize to the SQL Server to populate the subscription 
            '
            repl.Synchronize()
        Catch
            ' Handle errors here
            '
        Finally
            ' Dispose the repl object
            '
            repl.Dispose()
        End Try

См. также

Другие ресурсы

Использование репликации слиянием

Справка и поддержка

Получение помощи (SQL Server Compact 3.5 с пакетом обновления 1)