powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Исключения vs коды возвратов
25 сообщений из 406, страница 15 из 17
Исключения vs коды возвратов
    #39673863
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 17:17 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21569592][21569592]
>Простите, а что Вы в базе храните?
На данный момент занимаюсь ГИС. Значит как минимум у объектов есть географические координаты.
Конкретнее - есть задача отображения положения объектов на географической карте в заданное время.
1. Есть объекты и их состояние (положение на карте)
2. Есть документы (извещения), которые меняют состояние объектов.
3. В процессе развития, объекты могут появляться или пропадать.
4. Одним из параметров извещения является время.
Попытка решения в лоб - ищется группа извещений, время которых меньше заданного, а группе ищутся с максимальным временем - оказалась не состоятельной. Задача перешла из режима отчетного документа в интерактивный режим. А здесь присутствует фактор времени. Десятки минут не катят.
Пока ничего лучшего не придумал, кроме как строить в дополнительной таблицы временные срезы и извещения выбирать не из всего множества, а из диапазона между срезом и заданной датой.

Я буду крайне благодарен за любую положительную идею и конструктивную критику. Задача уже немного надоела, но надо сделать.
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39673868
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеевЯ буду крайне благодарен за любую положительную идею и конструктивную критику. Задача уже немного надоела, но надо сделать.тема топика совсе другая.
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39673873
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

сколько таких объектов и как часто приходят извещения (что такое?)
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39673885
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКонечно статья не убидительна, ведь ты её читал по диагонали судя по тому, что приводишь пример того, как типа должно быть ровно такой, с чего она начинается

Я не нашёл недостающие части, которые потом воткнули в fluent цепочку вызовов делегатов. Ну и решил исправить обратно именно результат.
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39673886
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA https://enterprisecraftsmanship.com/2015/02/26/exceptions-for-flow-control-in-c/

Согласен с исследованиями и выводами. И к чему это в данном контексте?
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39673887
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>ViPRos, сегодня, 18:43 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21569774][21569774]
>сколько таких объектов и как часто приходят извещения (что такое?)
Нужных решаемой задаче объектов - несколько сотен, нужных задаче извещений (документов) думаю в пределах десятка тысяч в год.
Беда в том что объекты и извещения не разбиты по группам, а свалены в одну кучу, а всевозможных объектов в системе десятки (а может и сотни) тысяч. Общее количество приходящих и отправляемых извещений в год я не знаю. Но они копятся.
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39673904
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

Ну, если бы просто рассказал о проблеме (на языке предметной области) возможно чем то помогли, но ты описываешь свое решение. :(
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675105
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 17:17 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21569592][21569592]
>Простите, а что Вы в базе храните?
На данный момент занимаюсь ГИС. Значит как минимум у объектов есть географические координаты.
Конкретнее - есть задача отображения положения объектов на географической карте в заданное время.
1. Есть объекты и их состояние (положение на карте)
2. Есть документы (извещения), которые меняют состояние объектов.
3. В процессе развития, объекты могут появляться или пропадать.
4. Одним из параметров извещения является время.
Попытка решения в лоб - ищется группа извещений, время которых меньше заданного, а группе ищутся с максимальным временем - оказалась не состоятельной. Задача перешла из режима отчетного документа в интерактивный режим. А здесь присутствует фактор времени. Десятки минут не катят.
Пока ничего лучшего не придумал, кроме как строить в дополнительной таблицы временные срезы и извещения выбирать не из всего множества, а из диапазона между срезом и заданной датой.

Я буду крайне благодарен за любую положительную идею и конструктивную критику. Задача уже немного надоела, но надо сделать.но при этом "С Entity и списком сущностей работает класс панели (UserControl), там они и определяются. И Entity не выносится за пределы панели"

То есть объекты, что Вы храните в базе, это не сущности Вашей предметной области?
Или у Вас есть такие сущности, есть сякие. Одни обзываются Entity, другие иначе?
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675237
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 15:18 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21578002] [21578002]
>Или у Вас есть такие сущности, есть сякие. Одни обзываются Entity, другие иначе?
Да, именно так.
Вот простой пример, с одной сущностью:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
namespace ns_ГИС {
  public partial class uc_СрезТБ : UserControl, I_Плитка {
    public row_Entity xrow, yrow;
    ObservableCollection<row_Entity> oc_Entity = new ObservableCollection<row_Entity>();  //-- Показываем в DataGrid 
    List<row_Entity> lst_Entity; //-- Временное хранение выборки
    OracleParameter[] asp;
    . . .
  //-- Класс, что ассоциируется с выборкой из временного среза и выборкой по извещениям
  public class row_Entity {
    public row_Entity(
       . . .   
       string _rn,
       DateTime _datesre
    ) {
    . . .


Запрос на формирование выборки извещений:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   .  .  .
  //-- Загружаем новейшие извещения выделенного диапазона
  lst_Entity = null; lst_Entity = new List<row_Entity>();
  asp = new OracleParameter[3] {
     new OracleParameter("cur_viborka", OracleDbType.Cursor, ParameterDirection.Output),
     new OracleParameter("x_dt_srez_new", dt_srez_new),
     new OracleParameter("x_dt_srez_old", dt_srez_min)
  };
  await Task.Run(() => wsp.Entity_SP("NCUYAO_GIS.Srez_Dop", wsp.sp_Sel, asp, RowToEntityIzv));
  if (wsp.wspErr != null) goto mp1;
   .  .  .

Примерно вот так формируем выборку из извещений.
Так отражаем её строку на сущность:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    //-- Строку выбоки из таблиц базы данных отражаем на entity 
    private void RowToEntityIzv(IDataRecord record) {
      xrow = new row_Entity() {
        . . .
        dateizm = record.GetDateTime(6),
        rn = record.GetString(7),
        datesre = dt_srez_new
      };
       lst_Entity?.Add(xrow);
    }
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675298
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жесть
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675603
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

и что же означает на Вашем языке "Entity не выносится за пределы панели"?
я вижу, что это публичный класс на весь Ваш ГИС...
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675666
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 15:18 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21578002] [21578002]
>Или у Вас есть такие сущности, есть сякие. Одни обзываются Entity, другие иначе?
Да, именно так.
Вот простой пример, с одной сущностью:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
namespace ns_ГИС {
  public partial class uc_СрезТБ : UserControl, I_Плитка {
    public row_Entity xrow, yrow;
    ObservableCollection<row_Entity> oc_Entity = new ObservableCollection<row_Entity>();  //-- Показываем в DataGrid 
    List<row_Entity> lst_Entity; //-- Временное хранение выборки
    OracleParameter[] asp;
    . . .
  //-- Класс, что ассоциируется с выборкой из временного среза и выборкой по извещениям
  public class row_Entity {
    public row_Entity(
       . . .   
       string _rn,
       DateTime _datesre
    ) {
    . . .



Запрос на формирование выборки извещений:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   .  .  .
  //-- Загружаем новейшие извещения выделенного диапазона
  lst_Entity = null; lst_Entity = new List<row_Entity>();
  asp = new OracleParameter[3] {
     new OracleParameter("cur_viborka", OracleDbType.Cursor, ParameterDirection.Output),
     new OracleParameter("x_dt_srez_new", dt_srez_new),
     new OracleParameter("x_dt_srez_old", dt_srez_min)
  };
  await Task.Run(() => wsp.Entity_SP("NCUYAO_GIS.Srez_Dop", wsp.sp_Sel, asp, RowToEntityIzv));
  if (wsp.wspErr != null) goto mp1;
   .  .  .


Примерно вот так формируем выборку из извещений.
Так отражаем её строку на сущность:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    //-- Строку выбоки из таблиц базы данных отражаем на entity 
    private void RowToEntityIzv(IDataRecord record) {
      xrow = new row_Entity() {
        . . .
        dateizm = record.GetDateTime(6),
        rn = record.GetString(7),
        datesre = dt_srez_new
      };
       lst_Entity?.Add(xrow);
    }


А покажите пожалуйста списко using-ов, используемых классом uc_СрезТБ.
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675670
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев
Код: c#
1.
lst_Entity?.Add(xrow)


А что, может случиться, что lst_Entity будет null ?
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675704
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

да просто надо посмотреть что это за "row_Entity" и все станет ясно
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675707
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

что конкретно станет ясно?
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675739
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAViPRos,

что конкретно станет ясно?
зачем вся эта белиберда
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675743
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

а скажите ещё вот что: класс панели (UserControl) к какому из описанных Вами выше 5-ти слоёв относится?
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675749
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANA https://enterprisecraftsmanship.com/2015/02/26/exceptions-for-flow-control-in-c/

Согласен с исследованиями и выводами. И к чему это в данном контексте?
К тому, ч то там один из выводов - это:
If you know how to deal with exceptions a library throws, catch them at the lowest level possible .
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675810
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAIf you know how to deal with exceptions a library throws, catch them at the lowest level possible .

If you know how to deal with exceptions a library throws , чего не выделил? )
Засунуть пойманное исключение внутрь OperationResult это из разряда shut up, I know what I'm doing
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675843
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAIf you know how to deal with exceptions a library throws, catch them at the lowest level possible .

If you know how to deal with exceptions a library throws , чего не выделил? )
Оставил оригинальное выделение, что в статье, прикинь
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675906
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>skyANA, сегодня, 13:08 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21580889][21580889]
>...я вижу, что это публичный класс на весь Ваш ГИС...
Вы не правы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
using Devart.Data.Oracle;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;

namespace ns_ГИС {
  public partial class uc_СНВсрезТБ : UserControl, I_Плитка {
    public row_Entity xrow, yrow;
    ObservableCollection<row_Entity> oc_Entity = new ObservableCollection<row_Entity>();  //-- Показываем в DataGrid 
    List<row_Entity> lst_Entity; //-- Временное хранение выборки
    OracleParameter[] asp;
    . . .     
    //-- Класс, что ассоциируется с выборкой из временного среза и выборкой по извещениям
    public class row_Entity {
      public row_Entity(
        bool _chb_Entity,
        string _pk,
        string _namvrr,
        string _numdoc,
        string _mesto,
        string _lat,
        string _lng,
        DateTime _dateizm,
        string _rn,
        DateTime _datesre
      ) {
        this.chb_Entity    = _chb_Entity;
        this.pk     = _pk;
        this.namvrr = _namvrr;
        this.numdoc = _numdoc;
        this.mesto = _mesto;
        this.lat = _lat;
        this.lng = _lng;
        this.dateizm = _dateizm;
        this.rn = _rn;
        this.datesre = _datesre;
      }
      public row_Entity() {; }
      public bool chb_Entity { get; set; }
      public string pk { get; set; }
      public string namvrr { get; set; }
      public string numdoc { get; set; }
      public string mesto { get; set; }
      public string lat { get; set; }
      public string lng { get; set; }
      public DateTime dateizm { get; set; }
      public string rn { get; set; }
      public DateTime datesre { get; set; }
    }
    public uc_СНВсрезТБ(MainWindow omw, Object oUC) {
      InitializeComponent();
      . . .
      dpr_Срез.SelectedDate = DateTime.Now; 
    }
    . . . 



А что, может случиться, что lst_Entity будет null?
Список не нужен.
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675932
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ВМоисеев>skyANA, сегодня, 13:08 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21580889][21580889]
>...я вижу, что это публичный класс на весь Ваш ГИС...
Вы не правы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
using Devart.Data.Oracle;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;

namespace ns_ГИС {
  public partial class uc_СНВсрезТБ : UserControl, I_Плитка {
    public row_Entity xrow, yrow;
    ObservableCollection<row_Entity> oc_Entity = new ObservableCollection<row_Entity>();  //-- Показываем в DataGrid 
    List<row_Entity> lst_Entity; //-- Временное хранение выборки
    OracleParameter[] asp;
    . . .     
    //-- Класс, что ассоциируется с выборкой из временного среза и выборкой по извещениям
    public class row_Entity {
      public row_Entity(
        bool _chb_Entity,
        string _pk,
        string _namvrr,
        string _numdoc,
        string _mesto,
        string _lat,
        string _lng,
        DateTime _dateizm,
        string _rn,
        DateTime _datesre
      ) {
        this.chb_Entity    = _chb_Entity;
        this.pk     = _pk;
        this.namvrr = _namvrr;
        this.numdoc = _numdoc;
        this.mesto = _mesto;
        this.lat = _lat;
        this.lng = _lng;
        this.dateizm = _dateizm;
        this.rn = _rn;
        this.datesre = _datesre;
      }
      public row_Entity() {; }
      public bool chb_Entity { get; set; }
      public string pk { get; set; }
      public string namvrr { get; set; }
      public string numdoc { get; set; }
      public string mesto { get; set; }
      public string lat { get; set; }
      public string lng { get; set; }
      public DateTime dateizm { get; set; }
      public string rn { get; set; }
      public DateTime datesre { get; set; }
    }
    public uc_СНВсрезТБ(MainWindow omw, Object oUC) {
      InitializeComponent();
      . . .
      dpr_Срез.SelectedDate = DateTime.Now; 
    }
    . . . 




А что, может случиться, что lst_Entity будет null?
Список не нужен.
Вы бы оставили нужное для понимания. а не все сто тыщь строк тащить
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39675941
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Cat2, сегодня, 23:49 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21582986][21582986]
>Вы бы оставили нужное для понимания. а не все сто тыщь строк тащить
Посмотрите на это , это , это , это , а Вы то зачем сто тыщь строк тащите, можно и ссылку.
Вы сами то понимаете, что это …не публичный класс на весь Ваш ГИС..
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39676014
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев>skyANA, сегодня, 13:08 http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1297921&msg=21580889][21580889]
>...я вижу, что это публичный класс на весь Ваш ГИС...
Вы не правы:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
using Devart.Data.Oracle;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;

namespace ns_ГИС {
  public partial class uc_СНВсрезТБ : UserControl, I_Плитка {
    public row_Entity xrow, yrow;
    ObservableCollection<row_Entity> oc_Entity = new ObservableCollection<row_Entity>();  //-- Показываем в DataGrid 
    List<row_Entity> lst_Entity; //-- Временное хранение выборки
    OracleParameter[] asp;
    . . .     
    //-- Класс, что ассоциируется с выборкой из временного среза и выборкой по извещениям
    public class row_Entity {
      public row_Entity(
        bool _chb_Entity,
        string _pk,
        string _namvrr,
        string _numdoc,
        string _mesto,
        string _lat,
        string _lng,
        DateTime _dateizm,
        string _rn,
        DateTime _datesre
      ) {
        this.chb_Entity    = _chb_Entity;
        this.pk     = _pk;
        this.namvrr = _namvrr;
        this.numdoc = _numdoc;
        this.mesto = _mesto;
        this.lat = _lat;
        this.lng = _lng;
        this.dateizm = _dateizm;
        this.rn = _rn;
        this.datesre = _datesre;
      }
      public row_Entity() {; }
      public bool chb_Entity { get; set; }
      public string pk { get; set; }
      public string namvrr { get; set; }
      public string numdoc { get; set; }
      public string mesto { get; set; }
      public string lat { get; set; }
      public string lng { get; set; }
      public DateTime dateizm { get; set; }
      public string rn { get; set; }
      public DateTime datesre { get; set; }
    }
    public uc_СНВсрезТБ(MainWindow omw, Object oUC) {
      InitializeComponent();
      . . .
      dpr_Срез.SelectedDate = DateTime.Now; 
    }
    . . . 

О, дак это вложенный тип.

Но у него модификатор доступа public , и у контейнера public , то есть бери и пользуйся:
Код: c#
1.
var entity = new ns_ГИС.uc_СНВсрезТБ.row_Entity();


И в чём тут смысл? Вы ведь не используете в нём переменные и методы контейнера.
И зачем в нём определены конструкторы, когда все свойтва имеют публичные сеттеры?

ВМоисеевА что, может случиться, что lst_Entity будет null?
Список не нужен.Иначе задам вопрос: разве может случиться так, что lst_Entity будет null в момент вызова метода Add?
...
Рейтинг: 0 / 0
Исключения vs коды возвратов
    #39676016
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

если понядобится формировать отчёт и отправлять его на e-mail заинтересованным лицам к примеру каждый понедельник автоматически, не через интерфейс программы,
то Вы ещё один класс заведёте, аналогичный row_Entity?
...
Рейтинг: 0 / 0
25 сообщений из 406, страница 15 из 17
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Исключения vs коды возвратов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]