//Чтение значений из рекордсета по одному блоку private ValuesCount ReadPartValues(IRecordRead rec) { var vc = new ValuesCount(); while (rec.Read()) { vc.ReadCount++; ListSourceOut ob = null; try { ob = _defineObjectFun(rec); if (ob != null) { vc.WriteCount += ob.ReadMoments(rec); } vc.AddStatus(VcStatus.Success); } catch (Exception ex) { AddErrorOut(ob == null ? "" : ob.Context, "Ошибка при чтении значений из рекордсета", ex); vc.AddStatus(VcStatus.NoSuccess); } } return(vc); }
//Чтение значений по одному явно указанному объекту protected ValuesCount ReadOneOut(ListSourceOut ob, DateTime beg, DateTime en, bool isCut, Func <IList <ListSourceOut>, DateTime, DateTime, bool, IRecordRead> queryValuesFun, //Функция - запрос рекордсета string msg = null) //Сообщение для истории о запуске чтения данных { if (ob == null) { return(new ValuesCount()); } AddEvent(msg ?? "Чтение значений объекта " + ob.Context); return(ReadWhole(new[] { ob }, beg, en, isCut, queryValuesFun, rec => ob)); }