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

Вниз

Набор редактируется в гриде.   Найти похожие ветки 

 
DROWSY   (2010-03-18 18:59) [0]

Вводимое в поле значение должно быть больше
"верхнего и "левого".
1. Где лучше проверять корректность вводимого значения на сервере или
клиенте?
2. На каком событии перехватывать?


 
Anatoly Podgoretsky ©   (2010-03-18 19:05) [1]

> DROWSY  (18.03.2010 18:59:00)  [0]

Что такое левое и верхнее и знаком ли сервер с этими понятиями?


 
Юрий Зотов ©   (2010-03-18 19:07) [2]

В базу можно влезть и другим клиентом, поэтому проверку лучше делать на сервере. Перехватывать можно в триггере.


 
DROWSY   (2010-03-18 19:51) [3]


> Anatoly Podgoretsky ©   (18.03.10 19:05) [1]


1. Если набор из таблицы:

x11, x12, x13, x14 ,x15
x21, x22, x23, x24 ,x25
x31, x32, x33, x34 ,x35
то,
Для каждого вводимого xIJ д.б. xI, J-1("левое") <= xIJ и xI-1 ,J ("верхнее") <= xIJ

2. Вопрос в том, "объяснять" ли эти правила серверу,
чтобы проверку вводимых значений проверять при передаче на сервер,
или проверять раньше, например на гриде?


> Юрий Зотов ©   (18.03.10 19:07) [2]


Клиент один.
Для обработки в триггере, наверное, надо будет в триггер помещать процедуру с параметрами? Так?


 
Медвежонок Пятачок ©   (2010-03-18 20:02) [4]

это у тебя один. а в соседней комнате есть второй, в котором проверка не запрограммирована


 
Медвежонок Пятачок ©   (2010-03-18 20:03) [5]

например это микрософт ёксель или sqlexplorer делфийский


 
DROWSY   (2010-03-18 20:10) [6]


> Медвежонок Пятачок ©   (18.03.10 20:02) [4]

Программа пишется под локальный сервер и одного клиента.

> Медвежонок Пятачок ©   (18.03.10 20:03) [5]

Delphi 6, Firebird 1.5


 
Anatoly Podgoretsky ©   (2010-03-18 20:30) [7]

> DROWSY  (18.03.2010 20:10:06)  [6]

Создай локальный массив и рули им.


 
Jeer ©   (2010-03-18 20:34) [8]


> DROWSY   (18.03.10 20:10) [6]
>
>
> > Медвежонок Пятачок ©   (18.03.10 20:02) [4]
>
> Программа пишется под локальный сервер и одного клиента.
>


Не слушай апологетов исключительно серверной бизнес-логики.

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

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


 
Jeer ©   (2010-03-18 20:37) [9]


> Медвежонок Пятачок ©   (18.03.10 20:02) [4]
>
> это у тебя один. а в соседней комнате есть второй, в котором
> проверка не запрограммирована
> <Цитата>
>
> Медвежонок Пятачок ©   (18.03.10 20:03) [5]
>
> например это микрософт ёксель или sqlexplorer делфийский


Вот не надо ля-ля..
Если каждая уборщица получит доступ к заветной кнопке..
В общем, динозавры еще много пожили, прежде чем откинуться.


 
DROWSY   (2010-03-18 20:47) [10]


> Jeer ©   (18.03.10 20:34) [8]

Если на уровне грида, то в TCustomDBGrid.OnDrawDataCell проверку делать?


 
Jeer ©   (2010-03-18 21:14) [11]

Могу сказать свое ИМХО
Редактирование в DBGrid-e - зло


 
MsGuns ©   (2010-03-18 21:23) [12]

>Юрий Зотов ©   (18.03.10 19:07) [2]
>проверку лучше делать на сервере. Перехватывать можно в триггере.

Очень спорное решение. Проверку корректности вводимых на клиенте данных без крайней необходимости не следует "поручать" серверу. А уж задействовать для этой цели триггер вообще мина :)


 
MsGuns ©   (2010-03-18 21:24) [13]

>Jeer ©   (18.03.10 21:14) [11]
>Редактирование в DBGrid-e - зло

Тут проблема вовсе не в гриде :)


 
DROWSY   (2010-03-18 21:26) [14]


> Jeer ©   (18.03.10 21:14) [11]

Почему?
Именно о редактировании Ваше ИМХО или о проверке корректности вводимых значений?
Что Вы используете?


 
Jeer ©   (2010-03-18 21:40) [15]


> DROWSY   (18.03.10 21:26) [14]
> Почему?
> Именно о редактировании Ваше ИМХО или о проверке корректности
> вводимых значений?
> Что Вы используете?


Редактирование в DBAware компонентах - это начальная, учебная практика.
При более/менее серьезных объемах редактирования - отдельные функциональные компоненты ввода ( грубо - текст, цифра, даты, время )
Там же, в окне ввода, производится проверка корректности данных на уровне каждого компонента или окончательного Ok от пользователя.
В последнем же случае - уже могут участвовать серверные проверки.


 
DROWSY   (2010-03-18 22:15) [16]


> Jeer ©   (18.03.10 21:40) [15]

Спасибо.


 
Игорь Шевченко ©   (2010-03-18 22:24) [17]

Jeer ©   (18.03.10 21:40) [15]


> Редактирование в DBAware компонентах - это начальная, учебная
> практика


А мы и не знали...редактируем. Где стенка, об которую нам убиться ?


 
Германн ©   (2010-03-19 01:20) [18]


> А мы и не знали...редактируем. Где стенка, об которую нам
> убиться ?

Такая стенка точно есть! Но вот точное её расположение пока неизвестно. Увы.
:)


 
Юрий Зотов ©   (2010-03-19 01:29) [19]

> MsGuns ©   (18.03.10 21:23) [12]

> Очень спорное решение.

Возможно. Но обоснование я привел. Может, и спорное - но привел. А вот серьезных возражений не услышал. Потому что два ничем не подкрепленных утверждения:

> Проверку корректности вводимых на клиенте данных без крайней
> необходимости не следует "поручать" серверу. А уж задействовать для
> этой цели триггер вообще мина

считать серьезными возражениями никак не могу. До тех пор, пока они не будут хоть как-то обоснованы.


 
DROWSY   (2010-03-19 01:41) [20]

Я итак запутанный был, а вы меня окончательно запутали...


 
Германн ©   (2010-03-19 02:15) [21]


> DROWSY   (19.03.10 01:41) [20]
>
> Я итак запутанный был, а вы меня окончательно запутали..
> .
>

"Учись студент"! (с)
:)


 
Германн ©   (2010-03-19 02:35) [22]

Для начала объясни сей бред.


> DROWSY   (18.03.10 19:51) [3]
>
>
> > Anatoly Podgoretsky ©   (18.03.10 19:05) [1]
>
>
> 1. Если набор из таблицы:
>
>

Из какой таблицы? Откуда сия взялась?


 
DROWSY   (2010-03-19 02:43) [23]

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


 
Германн ©   (2010-03-19 03:05) [24]


> DROWSY   (19.03.10 02:43) [23]

Эта таблица имеет хоть какое-то отношение к Базам Данных?
Если да, то какое?


 
DROWSY   (2010-03-19 03:12) [25]

Это таблица базы данных СУБД Firebird 1.5


 
Германн ©   (2010-03-19 03:15) [26]

Тогда я пас.


 
Sergey13 ©   (2010-03-19 08:44) [27]

> [25] DROWSY   (19.03.10 03:12)

Ты редактируешь/вводишь так ВСЮ таблицу или какой то ограниченный набор данных? Что это в предметной области?


 
MsGuns ©   (2010-03-19 09:12) [28]

>Юрий Зотов ©   (19.03.10 01:29) [19]
>До тех пор, пока они не будут хоть как-то обоснованы.

Вот хотя бы одно обоснование.
Запись БД состоит из N полей-реквизитов. В любом из них на клиенте может быть допущена
ошибка. Если проверка выполняется на сервере, то надо эти ошибки как-то конкретизировать "клиенту", для чего потребуется написать много кода в ХП. Кроме того, затруднительно диагностировать сразу ВСЕ ошибки, а не первую встретившуюся. Ну и главное, пожалуй: ошибки могут быть семантическими и "привязанными" к конкретной реализации клиента (задачи). Т.е. одному "клиенту" можно внести отрицательное значение, а другому - нет. Как это гармонично разрулить на сервере, не загромождая код сиквеля и привязывая жостко сервер к клиенту ?
Ну и при работе с удаленным сервером такая технология вообще тормознутая на всю голову.

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


 
MsGuns ©   (2010-03-19 09:18) [29]

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


 
Jeer ©   (2010-03-19 23:43) [30]


> Игорь Шевченко ©   (18.03.10 22:24) [17]
>
> Jeer ©   (18.03.10 21:40) [15]
>
>
> > Редактирование в DBAware компонентах - это начальная,
> учебная
> > практика
>
>
> А мы и не знали...редактируем. Где стенка, об которую нам
> убиться ?


Рядом с тобой - только повернись.


 
Германн ©   (2010-03-20 02:59) [31]


> Рядом с тобой - только повернись.
>

:)
http://www.aviaport.ru/digest/2008/10/02/158604.html


 
DROWSY   (2010-03-29 22:42) [32]

Если перехватывать ошибку ввода данных в BeforePost, то как можно сделать так, чтобы сохранился режим dsEdit или dsInsert, то есть чтобы Post не проходил?


 
Amoeba_   (2010-03-29 23:10) [33]


> как можно сделать так, чтобы сохранился режим dsEdit или
> dsInsert, то есть чтобы Post не проходил?

Вызовом процедуры Abort



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

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

Наверх




Память: 0.55 MB
Время: 0.077 c
2-1267596769
ruslan_as
2010-03-03 09:12
2010.08.27
Как в Image отобразить участок IPG файла по координатам


2-1268987208
Den
2010-03-19 11:26
2010.08.27
Какое событие происходит?


6-1218807638
_koha
2008-08-15 17:40
2010.08.27
Падает сокет усервера на WinAPI - не могу разобраться


15-1269639003
Юрий
2010-03-27 00:30
2010.08.27
С днем рождения ! 27 марта 2010 суббота


15-1266830326
Денис_
2010-02-22 12:18
2010.08.27
Подскажите книгу