crossplatform.ru

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

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Редактирование таблицы БД с уникальной комбинацией полей
Litkevich Yuriy
  опции профиля:
сообщение 29.5.2013, 12:26
Сообщение #11


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


я с мапером мало работал, но он вроде сам фиксирует изменения в БД это может помешать проверке на уникальность.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 29.5.2013, 12:26
Сообщение #12


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


лучше QString )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 29.5.2013, 12:33
Сообщение #13


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Цитата(Алексей1153 @ 29.5.2013, 12:26) *
лучше QString )

Как можно в один QString запихать значения всех полей текущей записи?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 29.5.2013, 12:51
Сообщение #14


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


всей то нет. В скайпе ответил )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 29.5.2013, 13:41
Сообщение #15


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Цитата(Litkevich Yuriy @ 28.5.2013, 19:17) *
на модель можно вешать "тригеры" (например, beforeUpdate)
в "тригерах" и обрабатывай проверку на уникальность.
спасибо, но для меня это пока-что слишком сложно.
проще создать модальный диалог для редактирования текущей записи текущей таблицы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 30.5.2013, 7:34
Сообщение #16


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 29.5.2013, 13:47) *
я бы при щелчке (двойном?) по строке открыл бы диалог редактирования записи.

вот это вот самый тупиковый путь: надо поменять значения двух или более записей так, что временно уникальность нарушается - и всё, кердык юзеру. диалог ему не даст изменить ни одной записи.
лучше делать временную таблицу и туда сохранять изменения, а потом "коммитить" её в основную, по какой-то особой кнопке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 30.5.2013, 9:01
Сообщение #17


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


Цитата(Iron Bug @ 30.5.2013, 7:34) *
лучше делать временную таблицу и туда сохранять изменения

предлагаете перед началом корректировки таблицы скопировать ВСЕ записи из нее в другую временную таблицу? можно чуть подробнее? :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 30.5.2013, 10:31
Сообщение #18


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


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

вопрос был про одну ячейку. Даже не строку
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 30.5.2013, 11:44
Сообщение #19


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 30.5.2013, 13:31) *
вопрос был про одну ячейку. Даже не строку

тогда для юзера всё ещё хуже: он может поменять только одно поле в одной записи.
лучше всё-таки для удобства скопировать таблицу (или открыть сессию), сделать там все изменения, предварительно проверив валидность, и потом всё это скопировать (или закоммитить). а если проверка или коммит провалился - сообщить юзеру и предложить откатить все изменения или поправить введённые данные.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 30.5.2013, 12:53
Сообщение #20


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

Спасибо сказали: 5 раз(а)




Репутация:   4  


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

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 8:11