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); } }
/// <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; } }
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); } }
/// <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; } }