//Чтение списка сигналов из клона private void PrepareForClone(string cloneFile) { try { AddEvent("Чтение свойств клона"); if (!DaoDb.Check(cloneFile, new[] { "Objects", "Signals", "MomentsValues" })) { AddError("Недопустимый файл клона"); } else { using (var db = new DaoDb(cloneFile)) { using (var sys = new SysTabl(db)) { if (_form != null) { _form.CalcName.Text = sys.Value("CloneDescription"); } _cloneInf = sys.Value("CloneInf"); RunSource(sys.SubValue("Source", "ProviderCode"), sys.SubValue("Source", "ProviderName"), sys.SubValue("Source", "ProviderInf")); } AddEvent("Чтение списка сигналов клона"); _source.ClearSignals(); int n = 0; using (var rec = new RecDao(db, "SELECT SignalId, FullCode, DataType, Inf FROM Signals WHERE ConstValue Is Null")) while (rec.Read()) { _source.AddSignal(rec.GetString("Inf"), rec.GetString("FullCode"), rec.GetString("DataType").ToDataType(), rec.GetInt("SignalId")); n++; } AddEvent("Сигналы клона прочитаны", n + " сигналов"); //db.Execute("DELETE * FROM MomentsValues"); //db.Execute("DELETE * FROM Intervals"); using (var rec = new RecDao(db, "Intervals")) { rec.AddNew(); rec.Put("TimeBegin", _timeBegin); rec.Put("TimeEnd", _timeEnd); } } } } catch (Exception ex) { AddError("Ошибка при подготовке клона", ex); } }
//Добавить сигнал для чтения public string AddSignal(string code, //Полный код сигнала string dataType, //Тип данных string inf) //Информация для источника { return(ExternalFun(() => _source.AddSignal(inf, code, dataType.ToDataType()))); }