Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Как вы относитесь к DB-Aware компонентам?   Найти похожие ветки 

 
Вариант   (2010-02-03 12:43) [40]


> Sergey13 ©   (03.02.10 12:01) [38]


> А где я призывал не писать код?

Не призывал. Я просто спросил.

> Меня стремает писать лишний (с моей точки зрения) код только
> по идеологическим причинам

Меня тоже. Но пишу когда надо и не по идеологическим причинам, а потому что если не написать, то будут проблемы с базой, с целостностью вводимых данных - и неважно код это для формы или для ликвидации "заморочек" грида -писать надо, если важна целостность и достоверность данных. На мой взгляд код для формы проще. У тебя и других может быть свое мнение.

Идеологическая причина -это когда например на фирме говорят - "в гриде не редактировать!!!".
А когда код пишется, что бы ночью не приезжать и не делать лишнюю работу по восстановлению базы  - это причина личная - хочется нормально спать.


 
Sergey13 ©   (2010-02-03 13:35) [41]

> [40] Вариант   (03.02.10 12:43)

ИМХО есть целость и непротиворечивость данных в понятиях сервера СУБД (ключи и зависимости разные) и есть то-же самое в понятиях бизнес-логики (типа остаток=приход-расход). Грид сам по себе не может нарушить ни первое ни второе. Первому просто пофиг кто и как что-то делает. А второе зависит только от программиста.


 
Вариант   (2010-02-03 13:55) [42]


> Sergey13 ©   (03.02.10 13:35) [41]

Нет кода - нет бизнес логики -я собственно об этом говорил.

> . Но пишу когда надо и не по идеологическим причинам, а
> потому что если не написать, то будут проблемы с базой,
> с целостностью вводимых данных


Когда мы код в датасете, в котором ты проверяешь бизнес логику, привязываем фактически к гриду ( вот перемещение в гриде вызвало переход на следующую запись в датасете и надо запретить переход так как мы в dsEdit или dsInsert, делаем в обработчике(ax) датасета Abort), то это на мой взгляд и есть лишний код, не связанный с бизнес логикой. И это не единственное место, где прийдется писать подобный код и не единственная ситуация.


 
Sergey13 ©   (2010-02-03 14:01) [43]

> [42] Вариант   (03.02.10 13:55)
> вот перемещение в гриде вызвало переход на следующую запись
> в датасете и надо запретить переход так как мы в dsEdit
> или dsInsert, делаем в обработчике(ax) датасета Abort),
> то это на мой взгляд и есть лишний код

А в модальной форме ты не проверяешь заполненность всех нужных полей? Это не один и тот же код?


 
Вариант   (2010-02-03 14:26) [44]


> Sergey13 ©   (03.02.10 14:01) [43]

Это разный код на мой взгляд. И там и там есть одни и те же проверки, и там и там я могу показать сообщение о том, что-то не так. Но в модальной форме я могу сделать это в одном месте. Мне нет необходимости отслеживать  другие связанные с датасетом контролы вне модальной формы, если такие есть... Модальная форма не даст к ним обратиться. В случае с гридом же пользователю например хотелось бы видеть внятное объяснение, почему нельзя вести поиск или надо запретить такую возможность  - это тоже доп. код.  - это вариант, но более раскиданный по разным местам кода.
Просто мои предпочтения в форме, по крайней мере в случае простого грида (TDBGRID) для дельфи. Это мы уже сместились в тему -  почему я считаю форму с кодом лучше грида с кодом.
Изначально же вопрос был - что просто кинуть грид не получится, есть проблемы,прийдется писать код и не просто в одном месте и не код бизнес логики, а код защиты от действий связанных с особенностями редактирования  в гриде


 
Sergey13 ©   (2010-02-03 15:03) [45]

> [44] Вариант   (03.02.10 14:26)
> Но в модальной форме я могу сделать это в одном месте.

В обработчике БифоПост будет примерно то же самое, ИМХО. При чем для ВСЕХ форм, в которых возможно изменение датасета.

> [44] Вариант   (03.02.10 14:26)
> Изначально же вопрос был - что просто кинуть грид не получится,
> есть проблемы,прийдется писать код и не просто в одном
> месте и не код бизнес логики, а код защиты от действий связанных
> с особенностями редактирования  в гриде

Перечитал изначальный вопрос. Поискал слово "код" в ветке. Впервые оно встретилось в 22 посте от Ганза. 8-)

А вопрос сводился к

> Не могу грамотно по пунктам описать, почему мне не нравятся такие компоненты, ну неудобные они какие-то.

8-)


 
Вариант   (2010-02-04 06:05) [46]


> Sergey13 ©   (03.02.10 15:03) [45]


> В обработчике БифоПост будет примерно то же самое, ИМХО.
>  При чем для ВСЕХ форм, в которых возможно изменение датасета.
>


Напиши этот код, насколько будет то же самое?  Пойдет схематично, план действий по пунктам например, 1) проверка заполненности полей согласно правилам бизнес логики 2)...еще что-то.. 3) еще что-то.

Если делать только проверку бизнес логики - то на действия пользователя по поиску в датасете какой-либо записи мы получим сообщение типа " не заполнены какие-то поля, завершите редактирование таблицы такой-то", может быть даже вернешь фокус на грид, покажещь форму(контрол, контейнер) в которой(м) этот грид. Нормальное сообщение, вполне подсказывающее, но не всем.  
Особенно если оператор просто перешел на другую форму (это сообщение может показаться неожиданным)  и начал редактировать в ней и в ней начал поиск связанный с гридом(датасетом) в первой форме. Так и будет скакать между формами, если догадается конечно, если уже поработал с программой и знает ее особенности, если читал документацию по работе с програмой и запомнил ее.  Довольно много если, хотя и объеденены по "или".

PS:
Признаю придрался к фразе ВСЕХ форм:-) и что не был достаточно убедителен, но продолжить сегодня дискуссию возможно не смогу или мое присутствие на сайте будет ограничено по по времени. Вчера было время, был выходной -сегодня много работы.


 
Sergey13 ©   (2010-02-04 11:28) [47]

> [46] Вариант   (04.02.10 06:05)
> Напиши этот код, насколько будет то же самое?  Пойдет схематично,
> план действий по пунктам например, 1) проверка заполненности
> полей согласно правилам бизнес логики 2)...еще что-то..
> 3) еще что-то.

Так ты его уже написал. 8-)
1) проверка наличия кода, количества и цены товара
2) не все поля заполнены - выход

Только не надо мне говорить, что правила бывают архисложные и т.д. и т.п. Я это знаю и не заявляю, что грид единственно возможный вариант работы.
Но применять для работы с табличными данными табличные же инструменты по моему логично.


 
Sergey13 ©   (2010-02-04 11:30) [48]

> [46] Вариант   (04.02.10 06:05)
> Напиши этот код, насколько будет то же самое?  Пойдет схематично,
> план действий по пунктам например, 1) проверка заполненности
> полей согласно правилам бизнес логики 2)...еще что-то..
> 3) еще что-то.

Так ты его уже написал. 8-)
1) проверка наличия кода, количества и цены товара
2) не все поля заполнены - выход

Только не надо мне говорить, что правила бывают архисложные и т.д. и т.п. Я это знаю и не заявляю, что грид единственно возможный вариант работы.
Но применять для работы с табличными данными табличные же инструменты по моему логично.


 
Sergey13 ©   (2010-02-04 11:56) [49]

офтор
Сори за дубль. Что то у меня форум глючит. Это кстати только у меня?


 
Piter ©   (2010-02-04 18:21) [50]

Удалено модератором
Примечание: Offtopic



Страницы: 1 2 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.079 c
2-1274359047
РП
2010-05-20 16:37
2010.08.27
Байты в число и число в байты нужной размерности


15-1274178058
RWolf
2010-05-18 14:20
2010.08.27
Найдите ошибку в рассуждении


2-1267715582
ZV
2010-03-04 18:13
2010.08.27
Инвертировать определенный бит в байте. Как ?


15-1274090512
SIV5000
2010-05-17 14:01
2010.08.27
Bitmap + OCR


2-1268475991
Fr
2010-03-13 13:26
2010.08.27
Сохранение TChart