|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
2 Calm: Если я вас правильно понял, то на одно возможное сообщение о попытке нарушении целостности данных, вы предлагаете сделать два? Одно ДО встроенной проверки базой данных, а второе ПОСЛЕ в случае таки возникновения ошибки? А в чем бонус? 2 ALL: Неужели большинство выполняют проверки целостности данных вручную, дабы показать пользователю адекватное сообщение на русском? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 10:29 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
Сергей Фролов2 ALL: Неужели большинство выполняют проверки целостности данных вручную, дабы показать пользователю адекватное сообщение на русском? http://www.sql.ru/forum/actualthread.aspx?tid=342424 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 10:31 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
Сергей Фролов2 ALL: Неужели большинство выполняют проверки целостности данных вручную, дабы показать пользователю адекватное сообщение на русском? а по разному. Была у меня система, где пользователю разрешали вводить абы как, а возникающие на сервере БД ошибки автоматически переводились на русский язык по некоторым правилам. Выглядело, честно говоря, страшненько и многие пользователи предпочитали (представьте себе !) видеть оригинальное английское сообщение. Сейчас стараемся проектировать ввод данных так, чтобы ошибки вида "foreign key violation" вообще не возникали. Ну а уж если возникли, показываем как есть - исключительная ситуация. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 10:43 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
iscrafmДа уж, точно. Задача пользователя нажать на кнопку "Отправить", а не передавать словами описание ошибки. Обработка нужна всегда, даже если подозреваешь, что в этом месте ошибки быть не может. А где тут кнопка "Отправить"? На русский слабо было перевести? Почему меню не русское? Почему сообщение не русское? Уважать надо соотечественников. Да и шибка то, похоже, программистская (типа ORA-600), а не пользовательская. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 11:38 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
mcureenab А где тут кнопка "Отправить"? На русский слабо было перевести? Почему меню не русское? Почему сообщение не русское? Уважать надо соотечественников. Да и шибка то, похоже, программистская (типа ORA-600), а не пользовательская. Извиняюсь, специально для съема картинки не переключился на русский язык. Мне больше нравится английский вариант, поэтому он у меня на ноуте и установлен. Кнопка отправить = Send. Русскоязычные пользователи естественно работают на русской версии. У них так и написано "Отправить", а вместо Record написано "Записи" и сообщение на русском конечно. А картинка в целях солидарности с softwarer-ом о том, что если подобные ошибки возникают, то задача пользователя нажать "Отправить", остальное все делает обработчик, он сам знает кому, что и как сообщить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 11:51 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
Calm авторА тот факт, что за время между проверкой и INSERT'ом запись в таблице, для которой создан foreign key, может быть удалена? Ну так и надо внятно написать почему не получается выполнить операцию. А не "key violation" в таблице такой-то. IMHO. С уважением. key violation (естественно, на родном языке пользователя), достаточно внятное описание ошибки. Грамотный пользователь СУБД вполне в состоянии понять, что это такое и определить свои дальнейшие действия (изменить данные, подождать и повторить попытку, обратиться в тех. поддержку, и т.п.). На вопрос "почему?" как правило дать ответ проблематично. Даже техническому специалисту иной раз сложно найти причину, ведь она совсем не обязательно связана с действием пользователя, который получил сообщение об ошибке. Ввести систему в некорректное состояние мог совсем другой пользователь или процесс. Сомневаюсь, что относительно простыми средствами программа сможет самостоятельно локализовать, и тем более устранить ошибку. Теперь спросим себя, зачем нам нужно знать причину? Для устранения ошибки причину знать не обязательно, нужно знать в каком состоянии находится система и способ перевода системы в одно из корректных состояний, а их может быть сколько угодно. Причина полезна для профилактики ошибок, но как мы видим, установление причины сложная и не всегда автоматизируемая задача. Можно сделать вывод, что сообщение об ошибке должно содержать констатацию факта и (опционно) возможные пути решения. Сообщать причину не нужно, скорее всего не угадаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 12:03 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
iscrafmИзвиняюсь, специально для съема картинки не переключился на русский язык. Мне больше нравится английский вариант, поэтому он у меня на ноуте и установлен. Кнопка отправить = Send. Русскоязычные пользователи естественно работают на русской версии. У них так и написано "Отправить", а вместо Record написано "Записи" и сообщение на русском конечно. А картинка в целях солидарности с softwarer-ом о том, что если подобные ошибки возникают, то задача пользователя нажать "Отправить", остальное все делает обработчик, он сам знает кому, что и как сообщить. ИМХО, диалог не логично построен. Лично у меня возник вопрос, что если нажать кнопку Yes или No. Будет ли отправлено сообщение? Если я нажму Send, выполнение продолжится (обычно кнопка на модальном диалоге вызывает действие и выход из диалога) или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 12:14 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
mcureenab Я в целом согласен с конкретными замечаниями и также предпочел бы в этом случае чуть другой дизайн. Хотя отметим, что и микрософт дает примеры аналогичных решений, и кнопка Help в стандартном MessageDlg реализована именно так. Что, впрочем, не мешает этому подходу эффективно решать проблему зачитывания по телефону англоязычных сообщений. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 12:25 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
mcureenab ИМХО, диалог не логично построен. Лично у меня возник вопрос, что если нажать кнопку Yes или No. Будет ли отправлено сообщение? Если я нажму Send, выполнение продолжится (обычно кнопка на модальном диалоге вызывает действие и выход из диалога) или нет? Переведу на русский :): При выполнении файла ___ возникла ошибка: Неизвестный идентификатор ХХХХ в строке НННН, позиции КККК Продолжить выполнение файла?: Да, Нет, Отправить сообщение об ошибке, Справка. Модальные кнопки (Да,Нет) отвечают на заданный вопрос. Остальные - сервисные функции. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 12:28 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
авторНа вопрос "почему?" как правило дать ответ проблематично. Даже техническому специалисту иной раз сложно найти причину, ведь она совсем не обязательно связана с действием пользователя, который получил сообщение об ошибке. Извините, это уже какой-то беспредел, когда прога написана так, что даже техническому специалисту сложно понять в чем же дело. авторТеперь спросим себя, зачем нам нужно знать причину? Для устранения ошибки причину знать не обязательно, авторТеперь спросим себя, зачем нам нужно знать причину? Для устранения ошибки причину знать не обязательно, нужно знать в каком состоянии находится система и способ перевода системы в одно из корректных состояний, а их может быть сколько угодно. И как же не зная причины, определить какой способ перевода в корректное состояние следует использовать? Это похоже на - Доктор, у меня болит правый бок - Выпейте желтую таблетку. - А у меня - левый. - Для вас - красная таблетка. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2006, 13:42 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
Calm авторНа вопрос "почему?" как правило дать ответ проблематично. Даже техническому специалисту иной раз сложно найти причину, ведь она совсем не обязательно связана с действием пользователя, который получил сообщение об ошибке. Извините, это уже какой-то беспредел, когда прога написана так, что даже техническому специалисту сложно понять в чем же дело. Дело может быть не в программе. Товарищ рассказывал, написал он настольную систему, поставил клинету, всё работает, но не прошло и дня, БД упала. Он починил. На следующий день всё повторилось. Программа правильная, но БД падает. Непонятки. Оказалось, что пользователь, уходя на обед просто выключал ПК из розетки. Вот и разберись!.. Локализовать ошибку не сложно (из примера видно, что БД разрушена), сложно (а иногда и невозможно) понять почему она возникла (неправильные действия пользователя перед обедом). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2006, 11:15 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
mcureenabОказалось, что пользователь, уходя на обед просто выключал ПК из розетки. и что ? Можно узнать имя БД ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2006, 11:22 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
Alexey Kudinov mcureenabОказалось, что пользователь, уходя на обед просто выключал ПК из розетки. и что ? Можно узнать имя БД ? +1 можно и про клиента поговорить - неоднократно сам выдёргивал из розетки, т.к. не боюсь я его Завис комп.. Выдерни шнур и выдави стекло! (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2006, 11:59 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
Alexey Kudinov mcureenabОказалось, что пользователь, уходя на обед просто выключал ПК из розетки. и что ? Можно узнать имя БД ? Вроде FoxPro для DOS был. Да в общем без разницы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2006, 16:13 |
|
GUI и целостность данных в БД
|
|||
---|---|---|---|
#18+
mcureenab Alexey Kudinov mcureenabОказалось, что пользователь, уходя на обед просто выключал ПК из розетки. и что ? Можно узнать имя БД ? Вроде FoxPro для DOS был. Да в общем без разницы. да. Тот мог лечь. ЗЫ. Я как то провёл эксперимент с MS SQL 2000 когда он завис в своей длинной транзакции (тестовое добавление миллиона записей) и меня достал. Вырубил комп на резет и после перезагрузки сервер начал откат всех действий с этим миллионом, т.к. понял что "он умер вчера". Далее работал как обычно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2006, 16:51 |
|
|
start [/forum/topic.php?fid=33&msg=34012035&tid=1549294]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
218ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 326ms |
0 / 0 |