Текущий архив: 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.98 MB
Время: 0.066 c