Как синхронизировать подписку слиянием в Sql Compact DB (на эмуляторе мобильного устройства) - PullRequest
0 голосов
/ 16 июня 2010

Используя SQL ManagementStudio 2008, я создал SQL 3.5 Compact DB (TestCompact.sdf) и создал подписку на существующую публикацию.Используя SQL Management Studio это работает.Я перенес TestCompact.sdf на устройство эмулятора Windows Mobile 5, и с помощью QueryAnalyzer for Mobile я мог запросить существующие таблицы в TestCompact.sdf.Я не знаю, как начать синхронизацию репликации на этом мобильном устройстве.Нужно ли мне писать какой-нибудь код на C # или это возможно сделать проще?

РЕДАКТИРОВАТЬ: (Добавлено после ответа на мой вопрос) Может быть, кому-то будет полезно узнать, какой код на C # сделал для меня:Использование SQL Management Studio - Свойства существующей подписки для моей компактной БД) Я прочитал, каковы значения для свойств replObj)

private void btnSync_Click(object sender, EventArgs e)
    {
        SqlCeConnection sqlCeConn = null;
        SqlCeReplication replObj = new SqlCeReplication();
        string connString = @"data source=\My Documents\TestReplicationCompactDB.sdf;Password=bero";
        replObj.InternetUrl = @"http://192.168.99.99/VirtualDirectoryForCompactDBReplication/sqlcesa35.dll";;
        replObj.PublisherDatabase =  "TestReplicationDB";
        replObj.PublisherSecurityMode = SecurityType.NTAuthentication;;
        replObj.Publisher = @"DBTESTSRV\SQL2008";
        replObj.Publication = "TestReplication2";
        replObj.Subscriber = "TestReplication";
        replObj.SubscriberConnectionString = @"data source=\My Documents\TestReplicationCompactDB.sdf;Password=bero";
        replObj.InternetLogin = @"ares\intor";
        replObj.InternetPassword = "intor";
        try
        {
            sqlCeConn = new SqlCeConnection(connString);
            sqlCeConn.Open();
            replObj.Synchronize();
            sqlCeConn.Close();
        }
        catch (Exception ex) { 
            MessageBox.Show(ex.Message);
            if (sqlCeConn != null && sqlCeConn.State == ConnectionState.Open)
                sqlCeConn.Close();
            return;
        }
        string countPublisherChanges = replObj.PublisherChanges.ToString();
        string countSubScriberChanges = replObj.SubscriberChanges.ToString();
        MessageBox.Show(String.Format("Finished with {0} subscriber changes and with {1} publisher changes", countSubScriberChanges, countPublisherChanges));
    } 

1 Ответ

0 голосов
/ 17 июня 2010

Вам нужно написать «некоторый» код C #, в конце работы мастера в SSMS вы получите пример кода.

...