Главная страница
    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.98 MB
Время: 0.066 c
2-1212491944
ZENsan
2008-06-03 15:19
2008.06.29
Interface...


2-1212121612
Dymok
2008-05-30 08:26
2008.06.29
Как узнать путь к каталогу документов пользователя


15-1210763844
@!!ex
2008-05-14 15:17
2008.06.29
тесселяция выпуклого многоугольника.


15-1210745245
pasha_golub
2008-05-14 10:07
2008.06.29
Нарезалка DVD CD


9-1171446585
Vemer
2007-02-14 12:49
2008.06.29
Какие режимы OpenGl надо включить?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский