![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Litkevich Yuriy |
![]()
Сообщение
#11
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
я поступил по другому: логика работы программы допускала мелкие транзакции, хотя они и были нежелательны.
Т.е. я выкинул db.transaction(); db.rollback(); и т.п. а чтобы ничего страшного нельзя было сделать повсеместно использую (конечный) автомат управления кнопками "отмена/сохранить" и блокировку виджетов. Если начал пользователь работать в одном месте, куча виджетов блокируется, пока он не нажмёт либо "отмена", либо "сохранить". |
|
|
potkin |
![]()
Сообщение
#12
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 18.6.2010 Пользователь №: 1819 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy,
Это как получается. Если на форме есть виджеты и каждая группа виджетов отображает (редактирует/сохраняет) данные из разных таблиц и которые НЕЛЬЗА сохранить в контексте ОДНОЙ транзакции, то: Пока пользователь работает с одной группой виджетов, остальные блокируются, пока он не сохранит эти данные в контексте какой-то транзакции. Потом 2-ю группу виджетов редактирует, остальные блокируются, пока не сохранит ... и т.д. ![]() Правильно ??? |
|
|
Алексей1153 |
![]()
Сообщение
#13
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
potkin, я работаю с MySQL 5+ из студии через ихний апи, который они прилагают. Транзакции работают. А ещё, можно сделать встроенную процедуру и там работать с транзакциями
Всё редактирование можно хранить в озу, а по кнопке закидывать в базу (если так возможно) |
|
|
potkin |
![]()
Сообщение
#14
|
Студент ![]() Группа: Участник Сообщений: 77 Регистрация: 18.6.2010 Пользователь №: 1819 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
potkin, я работаю с MySQL 5+ из студии через ихний апи, который они прилагают. Транзакции работают. А ещё, можно сделать встроенную процедуру и там работать с транзакциями. Всё редактирование можно хранить в озу, а по кнопке закидывать в базу (если так возможно) Мне бы в контексте одной транзакции как-то сохранить модель (QSqlTableModel ) и запрос (QSqlQuery) ..... ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#15
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Правильно ??? да. Для пользователя это более интуитивно, чем в случае, когда пользователь сделал одно, полез в другое, а потом сохранять в произвольном порядке. При этом БД ему что-то пишет об ошибке в ответ на неродном языке. Он это воспринимает как кривость программы (вобщем-то он прав)
|
|
|
Алексей1153 |
![]()
Сообщение
#16
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
potkin, а что значит "сохранить модель" и "сохранить запрос" ?
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#17
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Алексей1153 |
![]()
Сообщение
#18
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
вот не люблю эту автоматизацию. Надо так: делаешь себе правки, никого не трогаешь. Потом - жамк кнопку - сделался sql запрос/вызвалась процедура - и всё. А тут так и будешь стараться держать, чтоб всё не разбежалось по углам ))
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 14.5.2025, 13:07 |