Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.066 c
4-1237291521
Franzy
2009-03-17 15:05
2010.08.27
Самый быстрый способ загнать данные в Memory Mapped File


2-1271100027
Иван
2010-04-12 23:20
2010.08.27
ADO конект


2-1266888011
mops
2010-02-23 04:20
2010.08.27
dll &amp; потоки


11-1217255928
andreil
2008-07-28 18:38
2010.08.27
TFileTime -> time_t


2-1267541345
Pavel
2010-03-02 17:49
2010.08.27
Чтение данных из буфера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский