Форум программистов, компьютерный форум CyberForum.ru

Программирование мобильных систем

Войти
Регистрация
Восстановить пароль
 
Lolo_O
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 9
#1

Ошибка при репликации Windows Ce 5 с MS SQl 2008 - Программирование

10.12.2015, 13:41. Просмотров 292. Ответов 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();
            }
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 13:41     Ошибка при репликации Windows Ce 5 с MS SQl 2008
Посмотрите здесь:
Android Ошибка при сравнении со считанным из SQl значением
Android+ms sql 2008 R2 Android
Android Подключение java к базе данных sql 2008 r2
Android Ошибка при запуске AsyncTask при нажатии на пункт ActionBar
Ошибка при при смене активити Android
Windows Phone Ошибка эмулятора Windows Phone
Windows Phone Ошибка эмулятора Windows Phone 8
Windows Phone Непонятная ошибка с System.Windows.dll
Android "Ошибка при синтаксическом анализе пакета" при скачивании файла
Connect to MS SQL и ошибка "unfortunately has stopped" Android
Windows Phone Windows Mobile Phone Nokia 625 не могу ничего скачать выдается ошибка
[Windows Phone 8] Изменить цвет фона при свайпе Windows Phone

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lolo_O
0 / 0 / 1
Регистрация: 10.12.2015
Сообщений: 9
14.12.2015, 15:36  [ТС]     Ошибка при репликации Windows Ce 5 с MS SQl 2008 #2
Ответ выяснил сам ) спасибо всем за просмотры ))
Yandex
Объявления
14.12.2015, 15:36     Ошибка при репликации Windows Ce 5 с MS SQl 2008
Ответ Создать тему
Опции темы

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