GUI и SqlException
Как известно, проверять объекты на валидность перед сохранением лень. И вообще делать что-либо в GUI лень.
А вот в базе данных делать констрейнты и сложные условия предметной области на триггерах - не лень. Главным образом из-за того, что в GUI это означает борьбу с импедансом "код-база данных", а триггер или констрейнт уже в базе данных.
Но вот надо бы юзеру красивое сообщение об ошибке показывать, а не ужас вроде "ESUBDException with message 'Violation of FOREIGN KEY fkZHABBAKLESCH_KORTCHID on Table ZHABBAKLESCH'". Посему всем констрейнтам назначаем уникальные имена(по какой-то неясной науке причине во всех моих базах так уже сделано, видимо марсиане в мозг подсказали), эти имена вытаскиваем каким нибудь не особо долгим образом из сообщения об ошибке, по ним находим в таблице локализованных сообщений понятное юзеру сообщение и показываем.
А вот в базе данных делать констрейнты и сложные условия предметной области на триггерах - не лень. Главным образом из-за того, что в GUI это означает борьбу с импедансом "код-база данных", а триггер или констрейнт уже в базе данных.
Но вот надо бы юзеру красивое сообщение об ошибке показывать, а не ужас вроде "ESUBDException with message 'Violation of FOREIGN KEY fkZHABBAKLESCH_KORTCHID on Table ZHABBAKLESCH'". Посему всем констрейнтам назначаем уникальные имена(по какой-то неясной науке причине во всех моих базах так уже сделано, видимо марсиане в мозг подсказали), эти имена вытаскиваем каким нибудь не особо долгим образом из сообщения об ошибке, по ним находим в таблице локализованных сообщений понятное юзеру сообщение и показываем.
no subject
только нужно думать и проверять, какие комбинации ексепшынов могут выскакивать и с какими словами. Но и оригинальный код ошибки тоже писать.
no subject
no subject
no subject
no subject
no subject
no subject
Primary key с определенными именем - "Такая запись уже существует в таблице 'приемлемое для юзера название таблицы'"
Foreign key при удалении записи на которую ссылается кто-нибудь - "На запись есть ссылка в таблице '...'"
Foreign key при добавлении записи с неправильным значением поля, на которое наложено ограничение - "Не найдена запись с номером 'подставить введенное значение поля' в таблице 'имя справочника' "
Ограничения сheck и unique аналогичным образом.
no subject
no subject
no subject
no subject
http://andrew-vasilkov.livejournal.com/8990.html