Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2015, 16:38   #1
Lolo_O
Новичок
Джуниор
 
Регистрация: 11.12.2015
Сообщений: 4
Печаль

Всем доброго дня )) заранее всех благодарю за помощь в данной теме ))
Проблема такая : есть ТСД 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 .
Если кому либо приходилось настраивать репликация на терминале сбора данных типа symbol m3070 с Windows CE 5 напишите как вам это удалось ?)) или какие вы производили настройки чтобы репликация прошла ))

Эмулятор правда windows mobile , на нем все работает , почему на самом устройстве нечего не получается не понимаю о_О

Код:
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));
            }
 
        }

Последний раз редактировалось Stilet; 11.12.2015 в 17:27.
Lolo_O вне форума Ответить с цитированием
Старый 11.12.2015, 16:41   #2
Lolo_O
Новичок
Джуниор
 
Регистрация: 11.12.2015
Сообщений: 4
По умолчанию

Код:
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; 
                       //   http://192.20.202.20:80/ имя публикации/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);
 
                }

Последний раз редактировалось Stilet; 11.12.2015 в 17:29.
Lolo_O вне форума Ответить с цитированием
Старый 11.12.2015, 16:41   #3
Lolo_O
Новичок
Джуниор
 
Регистрация: 11.12.2015
Сообщений: 4
По умолчанию

Код:
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();
            }
        }

Последний раз редактировалось Stilet; 11.12.2015 в 17:29.
Lolo_O вне форума Ответить с цитированием
Старый 11.12.2015, 16:42   #4
Lolo_O
Новичок
Джуниор
 
Регистрация: 11.12.2015
Сообщений: 4
По умолчанию

код бросал частями , в одну запись не влазит

From Stilet: Код оформлять рекомендую по правилам. Иначе это неуважение к форумчанам.

Последний раз редактировалось Stilet; 11.12.2015 в 17:30.
Lolo_O вне форума Ответить с цитированием
Старый 11.12.2015, 17:12   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

оформите как положено код...
тогда его хоть прочесть реально будет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Server 2008 R2 + ADO.NET ImmortalAlexSan Свободное общение 2 16.10.2011 22:43
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36
MS SQL Server 2008 и Visual Studio 2008 C# (Как работать с БД?) cherw9!40k Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 14.01.2010 20:51
Не удается настроить прерывание от СОМ-порта Diusha Паскаль, Turbo Pascal, PascalABC.NET 0 30.05.2009 12:10