示例#1
0
        //Чтение значений из рекордсета по одному блоку
        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);
        }
示例#2
0
 //Чтение значений по одному явно указанному объекту
 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));
 }