Текущий архив: 2007.02.25;
Скачать: CL | DM;
ВнизПроблема с интерфейсов OK и Отмена, Commit и Rollback Найти похожие ветки
← →
DelphiLexx © (2006-12-04 19:17) [0]У меня возникла следующая проблема с сохранением данных в БД:
Есть DBGridEh который связан с TFIBDataSet"ом. Сейчас у меня на форме есть DBGridEh который связан с TFIBDataSet"ом, ещё много чего и две кнопки "ОК" и "Отмена". Пользователь вносить изменения(добавляет, удаляет, модифицирует данные) в грид.
[B]1)[/B] Сейчас у меня все сохранения вносятся после нажатия крестика на форме или нажатия кнопки "ОK" - которая делает Commit и закрывает форму. Кнопка "Отмена" - закрывает форму и делает Rollback.
[B]2)[/B] Есть вариант заместо кнопок "ОК" и "Отмена" сделать кнопку "Закрыть" - которая просто закрывает форму, и после каждого изменения делать Commit т.е. FIBDataSet.AutoCommit := True;
[B]3)[/B] Последний вариант состоит в том, чтобы оставить кнопки "ОK" и "Отмена", и в добавок на ToolBar"e разместить две кнопки (или только первую): кнопка сохранения текущих изменений(при чем форма не закрывается т.е. FibDataSet.Commit) и кнопка отмены внесенных данных(форма также не закрывается и делается FibDataSet.Rollback).
Посоветуйте как правильней и нужней будет для пользователя. Если мои варианты бредовые предлагайте свои. Главное, чтобы пользователь остался доволен.
← →
Desdechado © (2006-12-04 19:23) [1]а пользователя спросить?
← →
DelphiLexx © (2006-12-04 19:26) [2]
> а пользователя спросить?
Прога только разрабатывается. Спрашивать нет возможности. Поэтому и решил с master"ами посоветоваться.
← →
Desdechado © (2006-12-04 20:18) [3]> Прога только разрабатывается
Тогда на нее есть ТЗ.
Или опроси хотя бы потенциальных пользователей, потому как видение программиста, даже опытного, может весьма сильно отличаться от видения конкретной категории пользователей.
Обычно им нужна "одна большая красная кнопка, которая все за меня сделает".
← →
Sam Stone © (2006-12-04 20:28) [4]1 или 3 вариант. В софтине, которую я сейчас поддерживаю, реализовано так: редактируешь, что хочешь, добавляешь записи, удаляешь и тд. Когда надоело - жмешь кнопочку, происходит коммит или роллбек.
Вообще, действительно, лучше
> опроси хотя бы потенциальных пользователей
Ибо если юзеры - ббблондинки и им подобные, то им наверняка понадбится лишний запрос "а вы точно хотите сохранить/отменить изменения, сделанные в базе?". Ведь они всегда тычут ОК в диалоговом окне не глядя на текст сообщения, а потом возмущаются полученному результату )
← →
Anatoly Podgoretsky © (2006-12-04 20:53) [5]> Sam Stone (04.12.2006 20:28:04) [4]
> Ведь они всегда тычут ОК в диалоговом окне
В этом окне обязательно должна быть эта кнопка, при том одна, все равно другие не нажимают.
← →
DelphiLexx © (2006-12-05 09:13) [6]
> В этом окне обязательно должна быть эта кнопка, при том
> одна, все равно другие не нажимают.
Ну так каким способом воспользоваться 1, 2 или 3
← →
clickmaker © (2006-12-05 09:36) [7]
> Ибо если юзеры - ббблондинки и им подобныеВы уверены, что хотите сохранить данные?
[ Да ] [Нет] [Может быть...]
;)
← →
Sergey13 © (2006-12-05 10:14) [8]> [6] DelphiLexx © (05.12.06 09:13)
> Ну так каким способом воспользоваться 1, 2 или 3
Все зависит от типа бизнес-транзакции, к которой собственно должна стремиться транзакция в БД.
Если узеры вводят независимые ни от чего отдельные строки, то комитить нужно, ИМХО, каждый ввод. Если вводится сложный документ (шапочно детальный), то документ целиком и должен комититься. Во втором случае желательно вводить новые данные не напрямую в БД, а в отдельные датасеты в памяти, которые потом по отдельной кнопке одной короткой транзакцией завать в БД.
← →
ЮЮ © (2006-12-05 11:00) [9]
Sergey13 © (05.12.06 10:14) [8]
> потом по отдельной кнопке одной короткой транзакцией завать
> в БД.
А у автора: кнопки "ОK" - которая делает Commit и закрывает форму. Кнопка "Отмена" - закрывает форму и делает Rollback.
или у FIB-ов Commit это аналог ApplyUpdates ?
← →
Sergey13 © (2006-12-05 11:07) [10]> [9] ЮЮ © (05.12.06 11:00)
Так по кнопке "ОК" и предлагается заливать данные с комитом.
А за использование Rollback через пользовательский интерфейс вообще, ИМХО, руки отрывать надо. 8-)
← →
ANB © (2006-12-05 11:21) [11]
> Обычно им нужна "одна большая красная кнопка, которая все
> за меня сделает".
Не, наши обычно просят такую же, но ЗЕЛЕНУЮ.
← →
ЮЮ © (2006-12-05 11:53) [12]Sergey13 © (05.12.06 11:07) [10]
Но если по Ok - Commit, то, боюсь, что в FormCreate где-то StartTransaction затаился.
← →
Sergey13 © (2006-12-05 11:58) [13]> [12] ЮЮ © (05.12.06 11:53)
Так и я вроде другими словами про это-же. Уходить надо автору от этого.
Страницы: 1 вся ветка
Текущий архив: 2007.02.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.046 c