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