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

Вниз

override or overload ?   Найти похожие ветки 

 
Игорь Шевченко ©   (2008-05-14 14:40) [200]

DiamondShark ©   (14.05.08 14:19) [198]


> И пугать пользователя ексепшеном со страшными инопланетянскими
> словами?


В приложении как бы Exception-ы обычно перехватываются и представляются на понятном машинистке языке. При запросах таки да, на языке клиента СУБД ругаться будет.


 
boriskb ©   (2008-05-14 15:06) [201]

Пользователи - они разные.

У одного кладовщица со средним.
У другого служащий банка с двумя институтами.
И приоритеты в их работе разные.

И конторы у них разные: дисциплина, требования, ответственность и т.д.
Поменяй в их программных инструментах подходы при программировании - обе взвоют - неудобно!!
Вот вы про разных и спорите.

Я лично не вижу противоречий в двух подходах. И тот и другой вполне годны.


 
DiamondShark ©   (2008-05-14 15:28) [202]


> Игорь Шевченко ©   (14.05.08 14:40) [200]

Оракла у меня нет, но MS SQL для следующего случая:

create table foo(date1 datetime, date2 datetime, constraint CK_VALID_DATE check(date2>date1))

insert into foo values("20050101", "20050101")

Сообщает:
Server: Msg 547, Level 16, State 1, Line 1
INSERT statement conflicted with TABLE CHECK constraint "CK_VALID_DATE". The conflict occurred in database "ExPress", table "foo".

Это в Query Analizer.

При исполнении той же команды в Дельфи через ADOConnection получаю EOleException.

Предложите способ получить из этой информации сообщение для секретарши: "Дата 2 должна быть больше Даты 1".

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

if DateEdit2.Value <= DateEdit1.Value
 then raise EInvalidInput.Create("Дата 2 должна быть больше Даты 1")


 
Игорь Шевченко ©   (2008-05-14 15:45) [203]

DiamondShark ©   (14.05.08 15:28) [202]


> Способ должен требовать не больше программного кода, и этот
> код должен быть не сложнее, не тормознее и не трудночитаемее,
>  чем код:
>
> if DateEdit2.Value <= DateEdit1.Value
>  then raise EInvalidInput.Create("Дата 2 должна быть больше
> Даты 1")


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

Более сложный код предложить могу.


 
DiamondShark ©   (2008-05-14 16:37) [204]


> Более сложный код предложить могу.

А можно? Интересно же.


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

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

На деле приходится всё вместе делать: и превалидацию, и декларативную целостность на сервере, и обработку исключений с приведением к машинисткочитаемости.
:(


 
Игорь Шевченко ©   (2008-05-14 16:42) [205]

DiamondShark ©   (14.05.08 16:37) [204]


> А можно? Интересно же.


Для оракла в свое время напряглись и сделали в приложении, по номеру сообщения и имени CONSTRAINT, про MS SQL ничего не могу сказать, так как не в курсе, что он возвращает при EOleException


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


Дык оно некошерно, но если кроме ввода через форму существуют еще какие-то методы ввода, то все одно придется читать сообщения на другом языке.


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


И это тоже


 
DiamondShark ©   (2008-05-14 17:01) [206]


> Игорь Шевченко ©   (14.05.08 16:42) [205]
> Для оракла в свое время напряглись и сделали в приложении,
>  по номеру сообщения и имени CONSTRAINT

Я так и думал ;)


 
ketmar ©   (2008-05-14 21:02) [207]

>[188] Anatoly Podgoretsky © (2008-05-14 13:25:00)
нет, триггер должен бережно сохранять удалённые записи для последующего восстановления, если что. ну, и заодно записывать в логи, кто это был такой умный, кого премии лишать.

---
Understanding is not required. Only obedience.



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

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

Наверх




Память: 0.99 MB
Время: 0.037 c
2-1212520908
Ильдар
2008-06-03 23:21
2008.06.29
Удаление каталога


2-1212223941
Pi:=3.14...
2008-05-31 12:52
2008.06.29
Код в программе


2-1207920040
webSQLNeederr
2008-04-11 17:20
2008.06.29
Кирилица в Memo


2-1212153367
assassin8899
2008-05-30 17:16
2008.06.29
Access


11-1190364115
grim
2007-09-21 12:41
2008.06.29
по поводу создания форм