Russian Qt Forum

Qt => Базы данных => Тема начата: Larry от Май 26, 2014, 16:13



Название: Обновление базы данных
Отправлено: Larry от Май 26, 2014, 16:13
Добрый день, форумчане. Дайте совет пожалуйста как сделать следующее: есть программа (скриншот во вложении), в которой создаются некоторые профили и их параметры с набором значений и ошибок. Все это записывается в базу данных профилей. Так вот не могу понять как лучше сделать, н-р: добавляем новый профиль, а изменения были внесены в предыдущий, т.е. надо это внести в базу данных...когда это вносить? Каждый раз при редактировании любого параметра или его значения, т.е. по каждому чиху? Сейчас я заношу в свойства QComboBox ключ EDIT, который сигнализирует были изменения в параметре или нет и когда переходят на новый профиль, то я запрашиваю сохранить изменения или нет. Вроде бы все хорошо, но если у меня куча параметров, то при редактировании каждого из них тоже надо запрашивать о сохранении или же можно как-то по другому? Н-р: изменили параметр(его значения и ошибки) и занесли в базу...Как правильно вносить эти изменения...Извиняюсь, что может изложил как-то сумбурно, но надеюсь скриншот прояснит...


Название: Re: Обновление базы данных
Отправлено: Bepec от Май 26, 2014, 16:19
Тут надо определиться и разбить действия на группы. Если может меняться единовременно только 1 параметр и остальные от него зависят - тогда сразу менять.
Если можно разбить действия на "редактирование пользователя", "редактирование оператора" и прочее - тогда менять группами.

PS вообще у вас бардак какой то :) Вы точно знаете в какой профиль какие изменения внесены. Что вам мешает  это контролировать?


Название: Re: Обновление базы данных
Отправлено: _OLEGator_ от Май 26, 2014, 16:21
Сейчас я заношу в свойства QComboBox ключ EDIT

Отделяй интерфейс от данных, в интерфейсе не должны быть флаги - этот флаг должен быть в модели (классе). Иначе это будет полный бардак.


Название: Re: Обновление базы данных
Отправлено: Larry от Май 26, 2014, 16:33
Здесь при выборе любого параметра отображаются только его значения и значения ошибок...поэтому при выборе любого параметра меняется и его набор значений и ошибок...как правильно отделить интерфейс от данных? Я сделал свой класс, который хранил текущий профиль, т.е. все данные хранились в нем, но и там вылезли те же проблемы, запутался и удалил...с базами работаю первый раз, так что бегаю вокруг себя за своим хвостом, но пока ничего не придумал...