Здравствуйте, гость ( Вход | Регистрация )
Litkevich Yuriy | Дата 30.5.2013, 14:33 |
лучше делать временную таблицу и туда сохранять изменения, а потом "коммитить" её в основную, по какой-то особой кнопке. в моделях Qt это уже реализовано. Если для модели установить режим ManualSubmit, то она все изменения, вносимые в неё, кеширует у себя и только при вызове её метода submitAll() отправит их в БД. Т.е. программисту остаётся сделать кнопку "Сохранить" и по нажатии этой кнопки провести проверку/уведомление пользователя. И при успешной проверке вызвать метод submitAll(). |
|
Steklova Olga | Дата 30.5.2013, 14:30 |
нормальный интерфейс много проблем возникает из-за того, что я никогда не видела нормальный интерфейс какой-нибудь реальной БД, а только мелкие примеры из книжек. Не скажете, плиз, где найти ??? |
|
Iron Bug | Дата 30.5.2013, 14:17 |
надо как-то пометить в таблице на экране записи, в которых нарушилась валидность ну, это как бы и так понятно. нормальный интерфейс всегда имеет историю изменений, по шагам, и может подсказывать юзеру, что изменялось. тем более, что это не сложно. |
|
Steklova Olga | Дата 30.5.2013, 12:53 |
а если проверка или коммит провалился - сообщить юзеру и предложить откатить все изменения или поправить введённые данные. если оператор захочет в этом случае поправить введённые данные,а в таблице, к примеру, всего было 1995 записей, оператор 10 из них поменял и 5 добавил, то, наверное, надо как-то пометить в таблице на экране записи, в которых нарушилась валидность, или даже отобразить ТОЛЬКО ЭТИ записи, а не все 2000, а то оператор с ума сойдет, пока найдет их в таблице |
|
Iron Bug | Дата 30.5.2013, 11:44 |
вопрос был про одну ячейку. Даже не строку тогда для юзера всё ещё хуже: он может поменять только одно поле в одной записи. лучше всё-таки для удобства скопировать таблицу (или открыть сессию), сделать там все изменения, предварительно проверив валидность, и потом всё это скопировать (или закоммитить). а если проверка или коммит провалился - сообщить юзеру и предложить откатить все изменения или поправить введённые данные. |
|
Алексей1153 | Дата 30.5.2013, 10:31 |
вот это вот самый тупиковый путь: надо поменять значения двух или более записей так, что временно уникальность нарушается - и всё, кердык юзеру. диалог ему не даст изменить ни одной записи. вопрос был про одну ячейку. Даже не строку |
|
Steklova Olga | Дата 30.5.2013, 9:01 |
лучше делать временную таблицу и туда сохранять изменения предлагаете перед началом корректировки таблицы скопировать ВСЕ записи из нее в другую временную таблицу? можно чуть подробнее? |
|
Iron Bug | Дата 30.5.2013, 7:34 |
я бы при щелчке (двойном?) по строке открыл бы диалог редактирования записи. вот это вот самый тупиковый путь: надо поменять значения двух или более записей так, что временно уникальность нарушается - и всё, кердык юзеру. диалог ему не даст изменить ни одной записи. лучше делать временную таблицу и туда сохранять изменения, а потом "коммитить" её в основную, по какой-то особой кнопке. |
|
Steklova Olga | Дата 29.5.2013, 13:41 |
на модель можно вешать "тригеры" (например, beforeUpdate) спасибо, но для меня это пока-что слишком сложно.в "тригерах" и обрабатывай проверку на уникальность. проще создать модальный диалог для редактирования текущей записи текущей таблицы |
|
Алексей1153 | Дата 29.5.2013, 12:51 |
всей то нет. В скайпе ответил ) | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 11.5.2024, 13:57 |