Пример #1
0
        private void miDbPassToServer_Click(object sender, EventArgs e)
        {
            // перевод базы конфигурации в формат DAT
            try
            {
                if (AppData.Connected)
                {
                    string baseDatDir = settings.AppSett.BaseDATDir;
                    if (Directory.Exists(baseDatDir))
                    {
                        // создание файла блокировки базы конфигурации
                        string baseLockPath = baseDatDir + "baselock";
                        FileStream baseLockStream = new FileStream(baseLockPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                        baseLockStream.Close();

                        try
                        {
                            // сохранение таблиц базы конфигурации в формате DAT
                            BaseAdapter adapter = new BaseAdapter();
                            foreach (Tables.TableInfo tableInfo in Tables.TablesInfo)
                            {
                                DataTable table = tableInfo.GetTable();
                                adapter.FileName = baseDatDir + tableInfo.FileName;
                                adapter.Update(table);
                            }
                        }
                        finally
                        {
                            // удаление файла блокировки базы конфигурации
                            File.Delete(baseLockPath);
                        }

                        ScadaUtils.ShowInfo(AppPhrases.DbPassCompleted);
                    }
                    else
                    {
                        ScadaUtils.ShowError(CommonPhrases.BaseDATDirNotExists);
                    }
                }
            }
            catch (Exception ex)
            {
                AppUtils.ProcError(AppPhrases.DbPassError + ":\r\n" + ex.Message);
            }
        }
Пример #2
0
        /// <summary>
        /// Передать базу конфигурации серверу, т.е конвертировать из формата SDF в DAT
        /// </summary>
        public static bool PassBase(List<Tables.TableInfo> srcTableInfoList, string baseDATDir, out string msg)
        {
            try
            {
                // проверка аргументов метода
                if (srcTableInfoList == null)
                    throw new ArgumentNullException("srcTableInfoList");

                if (!Directory.Exists(baseDATDir))
                    throw new DirectoryNotFoundException(CommonPhrases.BaseDATDirNotExists);

                // создание файла блокировки базы конфигурации
                string baseLockPath = baseDATDir + "baselock";
                FileStream baseLockStream = new FileStream(baseLockPath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);
                baseLockStream.Close();

                try
                {
                    // сохранение таблиц в формате DAT
                    BaseAdapter adapter = new BaseAdapter();
                    foreach (Tables.TableInfo tableInfo in Tables.TableInfoList)
                    {
                        DataTable table = tableInfo.GetTable();
                        adapter.FileName = baseDATDir + tableInfo.FileName;
                        adapter.Update(table);
                    }
                }
                finally
                {
                    // удаление файла блокировки базы конфигурации
                    File.Delete(baseLockPath);
                }

                msg = AppPhrases.DbPassCompleted;
                return true;
            }
            catch (Exception ex)
            {
                msg = AppPhrases.DbPassError + ":\r\n" + ex.Message;
                return false;
            }
        }
Пример #3
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            // экспорт выбранной таблицы в формат DAT
            try
            {
                Tables.TableInfo tableInfo = cbTable.SelectedItem as Tables.TableInfo;

                if (tableInfo != null && AppData.Connected)
                {
                    string fileName = txtFileName.Text.Trim();
                    string directory = fileName == "" ? "" : Path.GetDirectoryName(fileName);
                    if (directory == "")
                    {
                        ScadaUtils.ShowError(AppPhrases.ExportDirUndefied);
                    }
                    else
                    {
                        if (Directory.Exists(directory))
                        {
                            BaseAdapter adapter = new BaseAdapter();
                            DataTable table = tableInfo.GetTable();
                            adapter.FileName = fileName;
                            adapter.Update(table);

                            ScadaUtils.ShowInfo(AppPhrases.ExportCompleted);
                        }
                        else
                        {
                            ScadaUtils.ShowError(AppPhrases.ExportDirNotExists);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                AppUtils.ProcError(AppPhrases.ExportError + ":\r\n" + ex.Message);
            }
        }
Пример #4
0
        /// <summary>
        /// Экспортировать таблицу базы конфигурации в файл формата DAT
        /// </summary>
        public static bool ExportTable(Tables.TableInfo srcTableInfo, string destFileName, 
            int minID, int maxID, out string msg)
        {
            try
            {
                // проверка аргументов метода
                if (srcTableInfo == null)
                    throw new ArgumentNullException("srcTableInfo");

                if (string.IsNullOrWhiteSpace(destFileName))
                    throw new ArgumentException(AppPhrases.ExportFileUndefied);

                string dir = Path.GetDirectoryName(destFileName);
                if (string.IsNullOrWhiteSpace(dir))
                    throw new DirectoryNotFoundException(AppPhrases.ExportDirUndefied);

                if (!Directory.Exists(dir))
                    throw new DirectoryNotFoundException(AppPhrases.ExportDirNotExists);

                // получение таблицы
                DataTable srcTable = srcTableInfo.GetTable();

                // ограничение диапазона идентификаторов
                if ((0 < minID || maxID < int.MaxValue) && srcTableInfo.IDColName != "")
                    srcTable.DefaultView.RowFilter = string.Format("{0} <= {2} and {2} <= {1}", 
                        minID, maxID, srcTableInfo.IDColName);

                // сохранение таблицы в формате DAT
                BaseAdapter adapter = new BaseAdapter();
                adapter.FileName = destFileName;
                adapter.Update(srcTable);
                msg = AppPhrases.ExportCompleted;
                return true;
            }
            catch (Exception ex)
            {
                msg = AppPhrases.ExportError + ":\r\n" + ex.Message;
                return false;
            }
        }