public virtual List <BridgeData> Load() // запрос на просто список мостов { // Получить список мостов в базе (главное - ID) string sql = "SELECT Br.idBr as ID, Br.brName AS BRNAME FROM Br "; query.Select(sql); List <DataRows> rows = query.GetRows(); string LastBrId = ""; BridgeData bd = null; List <BridgeData> Returnrows = new List <BridgeData>(); foreach (DataRows row in rows) { string BrId = row.FieldByName("ID"); if (LastBrId != BrId) { // flush if (bd != null) { Returnrows.Add(bd); } // make new bd = new BridgeData(int.Parse(BrId), row.FieldByName("BRNAME")); } } if (bd != null) { Returnrows.Add(bd); } return(Returnrows); }
public override void Run() { int count = 1; foreach (PDATable table in tables) { // select data QuerySelect query = QuerySelect.Create(BaseType.PDA); query.Select("select * from " + table.Name); List <DataRows> rows = query.GetRows(); foreach (DataRows row in rows) { // create insert script writer.WriteLine("INSERT INTO " + table.Name + " "); writer.WriteLine("( "); string Fields = " "; foreach (PDAField field in table.fields) { Fields += (field.Name + ", "); } Fields = Fields.Remove(Fields.Length - 2, 2); writer.WriteLine(Fields); writer.WriteLine(") "); writer.WriteLine("VALUES "); writer.WriteLine("( "); string Values = " "; foreach (PDAField field in table.fields) { string val = "'" + row.FieldByName(field.Name).Replace("'", "''") + "'"; if (val == "''") { if ((field.DataType == "numeric") || (field.DataType == "datetime")) { val = "NULL"; } } if ((field.DataType == "numeric")) { val = val.Replace(',', '.'); } Values += (val + ", "); } Values = Values.Remove(Values.Length - 2, 2); writer.WriteLine(Values); writer.WriteLine(") "); writer.WriteLine("GO"); } Loging.Loging.WriteLog("TABLE: " + table.Name + " exported " + rows.Count + " rows", false, true); Coordinator.ExecuteDelegateArgs args = new Coordinator.ExecuteDelegateArgs(); args.Maximum = tables.Count;//передавать в args кол-во таблиц и номер текущей (для прогресс бара) args.Pos = count; args.runningAction = this; args.Name = Name(); OnExecute(this, args); count++; } }
public void LoadOneTest() { BridgesReader reader = new BridgesReader(); reader.query = query; Expect.Call(query.Select(SQLSelectBridgesMode.SelectRel)).Return(true); List <DataRows> rows = new List <DataRows>(); DataRows row = new DataRows(); row.AddField(new DataField("BRNAME", "Most1")); row.AddField(new DataField("KM", 12.56)); row.AddField(new DataField("NUM", "P-86")); row.AddField(new DataField("RDNAME", "Road")); row.AddField(new DataField("ID", 10)); rows.Add(row); Expect.Call(query.GetRows()).Return(rows); repository.ReplayAll(); List <RoadData> records = reader.Load(BridgesReader.BrViewMode.viewRel); Assert.AreEqual("P-86 Road", records[0].Name); Assert.AreEqual("(12,56) Most1", records[0].Bridges[0].Name); Assert.AreEqual(10, records[0].Bridges[0].IDBR); repository.VerifyAll(); }