![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
JohnZ |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Помогите плз решить такую проблему ...
Имеется динамический диалог, в котором произведено опять-же динамическое связывание полей и записи с пом-ю QDataWidgetMapper. () Используемая модель, - QTableView. Для случая редактирования записи, проблем нет, вызывается Dialog->exec() и далее в зависимости от рез-та сохраняем запись ( dataMapper->submit() ). А как быть в случае добавления записи ? Т.е. нужно очистить диалог, дать возможность юзверю ввести свои данные, и затем добавить запись. Дело в том, что кнопка Insert может быть нажата на _любой_ записи в списке (QTableView), и при смапированных полях, может пострадать "ни в чём не виновная" запись ![]() Делать очистку dataMapper->clearMapping() тоже не вариант, т.к. в след-й раз чтобы показать этот-же диалог на редактирование, нужно будет перестраивать кроме этого диалога (и мапирования) все возможные связанные (child) диалоги. ВотЪ, объяснил как смог. Помогите плз кто в курсе проблемы. В принципе более интерисует алгоритм решения проблемы, нежели код. Если нужен код мапирования и запуска диалога, - выложу, но как я уже сказал, он тривиален, всё взято из примеров. И попутно, вопрос по отображению даты в QTableView. В примере sqlbrowser, год отображается 4-мя цифрами, а у меня почему-то 2-мя. Пересмотрел весь пример, этой установки не нашёл. В чём трабл ? Заранее благодарю за помощь. |
|
|
![]() |
lanz |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: ![]() ![]() ![]() |
Цитата "Уговорил" я мапера ![]() Это хорошо ![]() Просто одна мысль: Рассмотрите такой вариант развития событий. 1. Пользователь вводит данные полчаса 2. Прежде чем он успел нажать OK, выключается свет. В случае использования транзакций, в журнале БД могут остатся данные и можно попробовать их спасти. В случае когда вставка не происходит, данные можно тоже временно куда то сохранить, но зачем дублировать функционал БД. Посмотрел, не нашел ничего про даты, может в Qt5 другой пример? (или я вижу фигу ![]() (Да, смотрел здесь https://github.com/qtproject/qtbase/tree/de...sql/sqlbrowser) |
|
|
JohnZ |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 139 Регистрация: 19.7.2014 Пользователь №: 4190 Спасибо сказали: 10 раз(а) Репутация: ![]() ![]() ![]() |
Цитата "Уговорил" я мапера ![]() Это хорошо ![]() Просто одна мысль: Рассмотрите такой вариант развития событий. 1. Пользователь вводит данные полчаса 2. Прежде чем он успел нажать OK, выключается свет. В случае использования транзакций, в журнале БД могут остатся данные и можно попробовать их спасти. В случае когда вставка не происходит, данные можно тоже временно куда то сохранить, но зачем дублировать функционал БД. В принципе пока планирую этот вариант для QRecordSet, т.е. работа по 1-й записи. Максимум что пропадёт, - 1 запись. Это терпимо, юзверь не успеет озвереть ![]() Цитата Посмотрел, не нашел ничего про даты, может в Qt5 другой пример? (или я вижу фигу ![]() (Да, смотрел здесь https://github.com/qtproject/qtbase/tree/de...sql/sqlbrowser) Пример тот-же, врядли его правили под 5-ку из 4-ки. Я уже и построчно пересматривал, и ui-шный файл, нет ничего про дату, но у меня аналогичная связка (QSqlTableModel & QTableView) дату показывает в коротком формате. Магия какая-то ![]() Ссылка почему-то не рабочая. Показывает 404 страницу. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 11.4.2025, 23:16 |