Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-1167327617
guitarist
2006-12-28 20:40
2007.02.25
Поиск строки в большом файле


15-1170614636
hmmm
2007-02-04 21:43
2007.02.25
RSDN


2-1170924802
Alexdeil
2007-02-08 11:53
2007.02.25
Проблема с записью....


15-1170440145
_uw_
2007-02-02 21:15
2007.02.25
О Картинках


2-1170885198
MegaNop
2007-02-08 00:53
2007.02.25
Поменять цвет PageControl1





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