crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Редактирование таблицы БД с уникальной комбинацией полей
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 30.5.2013, 14:33
 
Цитата(Iron Bug @ 30.5.2013, 9:34) *
лучше делать временную таблицу и туда сохранять изменения, а потом "коммитить" её в основную, по какой-то особой кнопке.
в моделях Qt это уже реализовано. Если для модели установить режим ManualSubmit, то она все изменения, вносимые в неё, кеширует у себя и только при вызове её метода submitAll() отправит их в БД.
Т.е. программисту остаётся сделать кнопку "Сохранить" и по нажатии этой кнопки провести проверку/уведомление пользователя. И при успешной проверке вызвать метод submitAll().
Steklova Olga Дата 30.5.2013, 14:30
 
Цитата(Iron Bug @ 30.5.2013, 14:17) *
нормальный интерфейс

много проблем возникает из-за того, что я никогда не видела нормальный интерфейс какой-нибудь реальной БД, а только мелкие примеры из книжек.
Не скажете, плиз, где найти ???
Iron Bug Дата 30.5.2013, 14:17
 
Цитата(Steklova Olga @ 30.5.2013, 15:53) *
надо как-то пометить в таблице на экране записи, в которых нарушилась валидность

ну, это как бы и так понятно. нормальный интерфейс всегда имеет историю изменений, по шагам, и может подсказывать юзеру, что изменялось. тем более, что это не сложно.
Steklova Olga Дата 30.5.2013, 12:53
 
Цитата(Iron Bug @ 30.5.2013, 11:44) *
а если проверка или коммит провалился - сообщить юзеру и предложить откатить все изменения или поправить введённые данные.
если оператор захочет в этом случае поправить введённые данные,
а в таблице, к примеру, всего было 1995 записей, оператор 10 из них поменял и 5 добавил,
то, наверное, надо как-то пометить в таблице на экране записи, в которых нарушилась валидность,
или даже отобразить ТОЛЬКО ЭТИ записи, а не все 2000, а то оператор с ума сойдет, пока найдет их в таблице
Iron Bug Дата 30.5.2013, 11:44
 
Цитата(Алексей1153 @ 30.5.2013, 13:31) *
вопрос был про одну ячейку. Даже не строку

тогда для юзера всё ещё хуже: он может поменять только одно поле в одной записи.
лучше всё-таки для удобства скопировать таблицу (или открыть сессию), сделать там все изменения, предварительно проверив валидность, и потом всё это скопировать (или закоммитить). а если проверка или коммит провалился - сообщить юзеру и предложить откатить все изменения или поправить введённые данные.
Алексей1153 Дата 30.5.2013, 10:31
 
Цитата(Iron Bug @ 30.5.2013, 10:34) *
вот это вот самый тупиковый путь: надо поменять значения двух или более записей так, что временно уникальность нарушается - и всё, кердык юзеру. диалог ему не даст изменить ни одной записи.

вопрос был про одну ячейку. Даже не строку
Steklova Olga Дата 30.5.2013, 9:01
 
Цитата(Iron Bug @ 30.5.2013, 7:34) *
лучше делать временную таблицу и туда сохранять изменения

предлагаете перед началом корректировки таблицы скопировать ВСЕ записи из нее в другую временную таблицу? можно чуть подробнее? :)
Iron Bug Дата 30.5.2013, 7:34
 
Цитата(Алексей1153 @ 29.5.2013, 13:47) *
я бы при щелчке (двойном?) по строке открыл бы диалог редактирования записи.

вот это вот самый тупиковый путь: надо поменять значения двух или более записей так, что временно уникальность нарушается - и всё, кердык юзеру. диалог ему не даст изменить ни одной записи.
лучше делать временную таблицу и туда сохранять изменения, а потом "коммитить" её в основную, по какой-то особой кнопке.
Steklova Olga Дата 29.5.2013, 13:41
 
Цитата(Litkevich Yuriy @ 28.5.2013, 19:17) *
на модель можно вешать "тригеры" (например, beforeUpdate)
в "тригерах" и обрабатывай проверку на уникальность.
спасибо, но для меня это пока-что слишком сложно.
проще создать модальный диалог для редактирования текущей записи текущей таблицы
Алексей1153 Дата 29.5.2013, 12:51
  всей то нет. В скайпе ответил )
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.4.2024, 2:13