Не сохраняется новая запись в БД Postgres |
Здравствуйте, гость ( Вход | Регистрация )
Не сохраняется новая запись в БД Postgres |
gbcesc |
13.4.2013, 14:08
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.4.2013 Пользователь №: 3791 Спасибо сказали: 0 раз(а) Репутация: 0 |
Всем добрый день. Столкнулся с одной проблемой и не могу понять,что не так. Есть программа для работы с Базой Данных Postgres, подключение - все проходит успешно, таблица выводится. Удалить последнюю строку получается и это изменение сохраняется в саму БД, а вот добавить новую строку,чтобы она сохранилась никак не выходит. Помогите пожалуйста и скажите,что в коде не так? В Qt я новичок.
Код:
|
|
|
maint |
13.4.2013, 18:41
Сообщение
#2
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
вставьте штук 10. Увидите что что то сохранилось. Постигнув эту истину найдете понятие транзакция и при выходе из программы будете делать что то вроде
|
|
|
gbcesc |
13.4.2013, 18:59
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.4.2013 Пользователь №: 3791 Спасибо сказали: 0 раз(а) Репутация: 0 |
Maint, Вы имеете ввиду создать кнопку выхода и вставить Ваш код туда? не могли бы Вы написать прямо в коде куда надо это вставлять? Если нужны исходники
Прикрепленные файлы
|
|
|
maint |
13.4.2013, 19:23
Сообщение
#4
|
Участник Группа: Участник Сообщений: 235 Регистрация: 3.8.2009 Из: Иркутск Пользователь №: 982 Спасибо сказали: 28 раз(а) Репутация: 2 |
|
|
|
gbcesc |
13.4.2013, 19:53
Сообщение
#5
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 13.4.2013 Пользователь №: 3791 Спасибо сказали: 0 раз(а) Репутация: 0 |
К сожалению, ничего не происходит.все тоже самое. А Если попытаться сразу добавить много строк,то если заполнить одну сроку и потом добавить еще,то предыдущая строка сразу становиться пустой и так далее.
|
|
|
Majestio |
19.4.2013, 20:43
Сообщение
#6
|
Студент Группа: Участник Сообщений: 67 Регистрация: 13.2.2013 Пользователь №: 3710 Спасибо сказали: 1 раз(а) Репутация: 1 |
К сожалению, ничего не происходит.все тоже самое. А Если попытаться сразу добавить много строк,то если заполнить одну сроку и потом добавить еще,то предыдущая строка сразу становиться пустой и так далее. Я бы предложил следующее: 1) Вынести model в класс, проинициализировать ее в конструкторе один раз через new (и не делать всяких там this->model = model) 2) Немного изменить порядок манипуляций с моделью // в конструкроре ................................................................................ .......... model->setTable("trade"); // потом model->select(); // потом model->setHeaderData(0, Qt::Horizontal, QObject::tr("Номер точки")); model->setHeaderData(1, Qt::Horizontal, QObject::tr("Тип торговой точки")); model->setHeaderData(2, Qt::Horizontal, QObject::tr("Число торговых залов")); model->setHeaderData(3, Qt::Horizontal, QObject::tr("Платежи за аренду, руб.")); model->setHeaderData(4, Qt::Horizontal, QObject::tr("Коммунальные услуги, руб.")); // потом ui->tw->setModel(model); ui->tw->show(); // в конструкторе model->submitAll() не нужен, ибо только чтение про добавление .... если БД позволяет вставлять данные (NULL,NULL,....,NULL) - добавление должно пройти после сабмита модели, если хотябы одно поле NOT NULL - нужно добавить в модель реальные заполненные данные, иначе БД просто этот сабмин не скушает Вот как-то так. |
|
|
Текстовая версия | Сейчас: 29.3.2024, 4:36 |