Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование мобильных систем
Войти
Регистрация
Восстановить пароль
 
Lolo_O
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 9
1

Ошибка при репликации Windows Ce 5 с MS SQl 2008

10.12.2015, 13:41. Просмотров 363. Ответов 1
Метки нет (Все метки)

Всем доброго дня )) заранее всех благодарю за помощь в данной теме ))
Проблема такая : есть ТСД symbol m3070 windows ce 5 .0 и база данных MS SQL , нужно реализовать репликацию .Все на MS SQl IIS настроено . Написал прогу в VS 2008 c# , на эмуляторе запускаю , репликация работает . Ставлю прогу на ТСД (WIFi включен , выйти в интерн можно ) . Установлены уже такие вот фреймоврки : NETCFv35.wce.armv4 , sqlce.wce5.armv4i , sqlce.repl.wce5.armv4i , sqlce.dev.RU.wce5.armv4i , NETCFv35.Messages.EN .
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 try
            {
 
                //нужна проверка легитимности базы (наличие т.ОперацииЗаказов). Если нет, то удалять файл и устанавливать createDB
 
                if (createDB)
                {
                    repl.ExchangeType = System.Data.SqlServerCe.ExchangeType.BiDirectional;
                    repl.InternetUrl = "http://192.20.206.20:80/ имя публикации/sqlcesa35.dll"; 
                    repl.InternetLogin = "";
                    repl.InternetPassword = "";
                    repl.LoginTimeout = 15;
                    repl.ProfileName = "DEFAULT";
                    repl.Publisher = "имя сервера"; // имя сервера  
                    repl.PublisherAddress = "";
                    repl.PublisherNetwork = System.Data.SqlServerCe.NetworkType.DefaultNetwork;
                    repl.PublisherDatabase = " база данных для публикации "; 
                    repl.PublisherSecurityMode = SecurityType.NTAuthentication;
                    repl.PublisherLogin = "";
                    repl.PublisherPassword = "";
                    repl.Publication = "Имя публикации"; 
                    repl.QueryTimeout = 300;
                    //repl.Validate = System.Data.SqlServerCe.ValidateType.NoValidation;
                    repl.Validate = System.Data.SqlServerCe.ValidateType.RowCountOnly;
                    repl.HostName = TSDKey.Get_TSD_Key; // ключ Guid  Класс реализует ключ приложения
                    repl.Subscriber = "test"; //"test";//  имя подписчика
                    repl.InternetProxyServer = "";
                    repl.InternetProxyLogin = "";
                    repl.InternetProxyPassword = "";
                    repl.ConnectionRetryTimeout = 120;
                    repl.CompressionLevel = 6;
                    repl.ConnectionManager = false;
                    repl.SnapshotTransferType = System.Data.SqlServerCe.SnapshotTransferType.UNC;
                    repl.AddSubscription(AddOption.CreateDatabase);
                    repl.Synchronize();
                    repl.SaveProperties();
              }
   catch (SqlCeException exc)
            {
                if (exc.NativeError == 28037)
                {
                    MessageBox.Show("Нет связи с сервером! Проверьте свое подключение!", "Ошибка!");
                    WriteLineInTextFile(filePathLogFile, "Нет связи с сервером! Проверьте свое подключение!"); // файл логов
                }
                else
                {
                    MessageBox.Show(exc.Message, "Ошибка!");
 
                    WriteLineInTextFile(filePathLogFile, exc.Message);
                }
                if (createDB)
                {
                    DialogResult = DialogResult.Cancel;
                    Close();
                }
            }
            finally
            {
                Cursor.Current = Cursors.Default;
                //repl.Dispose();
            }
Блок сей работает при нажатии на кнопку , сразу как нажимаю выводит пустое окно Ошибка !
Гуглил гуглил , и нечего не нашел . Эмулятор правда windows mobile , на нем все работает , почему на самом устройстве нечего не получается не понимаю о_О
Проблема усложняется так как не выводит номер или название ошибки ((((

Добавлено через 13 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
 bool createDB { get; set; }
 SqlCeReplication repl = null;
 private void Синхронизация_Load(object sender, EventArgs e)
        {
            txtBKey.Text = TSDKey.Get_TSD_Key;
            //FillCB();
            repl = new SqlCeReplication();
            repl.SubscriberConnectionString = DBConStrs.ConnectionString("SM") + "LCID=1049; Encrypt = FALSE;";
            if (createDB)
            {
                lbInfoStausDB.Visible = true;
                FillURLByParam();
                Reinitialize_checkBox.Enabled = false;
                УдалитьБД_button.Enabled = false;
            }
            else
            {
                repl.LoadProperties();
                txt_InternetUrl.Text = repl.InternetUrl;
                txtBSubcriber.Text = repl.Subscriber;
                txtBSubcriber.Enabled = false;
                cbBPublication.Text = repl.Publication.ToString();
                cbBIpServer.Text = repl.InternetUrl.Substring(repl.InternetUrl.IndexOf("://") + 3, repl.InternetUrl.IndexOf(":", 10) - (repl.InternetUrl.IndexOf("://") + 3));
            }
 
        }
 
 private void btnSynhroniz_Click_1(object sender, EventArgs e)
        {
            DialogResult result = DialogResult.None;
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                if (txtBSubcriber.Text.Length <= 0)
                {
                    MessageBox.Show("Введите свой номер ", "Внимание!");
                    return;
                }
 
 
 
                // Instantiate and configure SqlCeReplication object
                //нужна проверка легитимности базы (наличие т.ОперацииЗаказов). Если нет, то удалять файл и устанавливать createDB
 
                if (createDB)
                {
                    repl.ExchangeType = System.Data.SqlServerCe.ExchangeType.BiDirectional;
                    repl.InternetUrl = "http://172.16.0.208:20080/REPL/sqlcesa35.dll"; //txt_InternetUrl.Text; //   [url]http://192.20.202.20:80/[/url] имя публикации/sqlcesa35.dll
                    repl.InternetLogin = "";
                    repl.InternetPassword = "";
                    repl.LoginTimeout = 15;
                    repl.ProfileName = "DEFAULT";
                    repl.Publisher = "BOLD"; // имя сервера - Bold 
                    repl.PublisherAddress = "";
                    repl.PublisherNetwork = System.Data.SqlServerCe.NetworkType.DefaultNetwork;
                    repl.PublisherDatabase = "BD"; // база данных для публикации 
                    repl.PublisherSecurityMode = SecurityType.NTAuthentication;
                    repl.PublisherLogin = "";
                    repl.PublisherPassword = "";
                    repl.Publication = "sm"; //Имя публикации "sm";
                    repl.QueryTimeout = 300;
                    //repl.Validate = System.Data.SqlServerCe.ValidateType.NoValidation;
                    repl.Validate = System.Data.SqlServerCe.ValidateType.RowCountOnly;
                    repl.HostName = TSDKey.Get_TSD_Key;
                    repl.Subscriber = "test"; //"test";// // имя подписчика
                    repl.InternetProxyServer = "";
                    repl.InternetProxyLogin = "";
                    repl.InternetProxyPassword = "";
                    repl.ConnectionRetryTimeout = 120;
                    repl.CompressionLevel = 6;
                    repl.ConnectionManager = false;
                    repl.SnapshotTransferType = System.Data.SqlServerCe.SnapshotTransferType.UNC;
                    repl.AddSubscription(AddOption.CreateDatabase);
 
                }
                else
                {
                    repl.InternetUrl = txt_InternetUrl.Text;
                    if (Reinitialize_checkBox.Checked)
                    {
                        repl.ReinitializeSubscription(true);
                    }
                    if (repl.HostName != TSDKey.Get_TSD_Key || repl.Publication != cbBPublication.Text)
                    {
                        if (MessageBox.Show("Был изменен филиал. Текущие данные будут полностью уничтожены и загружены новые.", "Внимание", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2) == DialogResult.OK)
                        {
                            repl.LoadProperties();
                            SqlCeReplication replTemp = repl;
                            repl.DropSubscription(DropOption.UnregisterSubscription);
                            repl.InternetUrl = txt_InternetUrl.Text;
                            repl.Publisher = "BDPublisher";//
                            repl.Publication = cbBPublication.Text;
                            repl.HostName = TSDKey.Get_TSD_Key;
                            //replTemp.ReinitializeSubscription(false);
                            repl.AddSubscription(AddOption.ExistingDatabase);
                        }
                        else
                        {
                            return;
                        }
                    }
                }
                repl.Synchronize();
                repl.SaveProperties();
 
                //Блокируем все операции
                if (!createDB)
                {
                    { throw new Exception("Ошибка блокировки операций!\n Синхронизация не выполнена!"); }
                }
                WriteLineInTextFile(filePathLogFile, "Синхронизация успешно завершена!");
 
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Синхронизация успешно завершена!", "Сообщение!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
 
            }
            catch (SqlCeException exc)
            {
                if (exc.NativeError == 28037)
                {
                    MessageBox.Show("Нет связи с сервером! Проверьте свое подключение!", "Ошибка!");
                    WriteLineInTextFile(filePathLogFile, "Нет связи с сервером! Проверьте свое подключение!");
                }
                else
                {
                    MessageBox.Show(exc.Message, "Ошибка!");
 
                    WriteLineInTextFile(filePathLogFile, exc.Message);
                }
                if (createDB)
                {
                    DialogResult = DialogResult.Cancel;
                    Close();
                }
            }
            finally
            {
                Cursor.Current = Cursors.Default;
                //repl.Dispose();
            }
            //Если не было базы при запуске приложения, то происходит проверка и обновление в этом классе.
            //Если была база при запуске, то проверка происходит в точке входа.
            if (result != DialogResult.No && !createDB)
            {
                repl.Dispose();
                DialogResult = DialogResult.OK;
                Close();
            }
            else if (createDB)
            {
                repl.Dispose();
                Close();
            }
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 13:41
Ответы с готовыми решениями:

Ошибка при установке MS SQL 2008
Всем привет. При установке sql сервера 2008 выскакивает ошибка: Final...

Ошибка при подключении БД в MS SQL Server 2008 R2
Пишу программу на C# для работы с базами данных MS SQL Server 2008 R2. Базу...

Ошибка при подключении к SQL SERVER 2008
Кто нибудь сталкивался с подобной проблемой? При попытке добавления...

Ошибка при установке MS SQL Server 2008 R2
Помогите пожалуйста, уже устал прост с этим сервером бороться, при установке...

Ошибка при установке MS SQL Server 2008
Здравствуйте. Подскажите, пожалуйста, как установить MS SQL server? У меня...

1
Lolo_O
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 9
14.12.2015, 15:36  [ТС] 2
Ответ выяснил сам ) спасибо всем за просмотры ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2015, 15:36

Ошибка при восстановлении БД MS sql server 2008
Необходимо перенести полностью database с одного компа на другой. Пыталась ...

Ошибка при установке Microsoft SQL Server 2008
Добрый день форумчане. Столкнулся с такой проблемой при установке Microsoft SQL...

Ошибка при подключении к Microsoft SQL Server 2008
создал базу данных в Microsoft SQL Server 2008, и хочу подключить к проекту...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru