crossplatform.ru

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


  Ответ в Сохранение изменений в БД
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 20.7.2010, 15:43
 
Цитата(bynet @ 20.7.2010, 19:22) *
Все примеры используют память для хранения бд,
подправь это место, да проверь.
bynet Дата 20.7.2010, 15:22
  Все примеры используют память для хранения бд, мне надо в файл. Поэтому примера нету. Когда я изменяю в таблице значение, оно там остается. Но при закрытии программы, и повторного запуска идет прием данных из бд, данные старые. Буду пробовать пример maint

Помог вариант maint.
Litkevich Yuriy Дата 20.7.2010, 14:38
  maint, он использует:
Цитата(bynet @ 20.7.2010, 15:20) *
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
ему не нужны транзакции.

bynet, я подозреваю, что ты что-то забыл для QDataWidgetMapper. посмотри пример:
%QTDIR%\demos\books\bookwindow.cpp
maint Дата 20.7.2010, 14:13
 
model->database().transaction();
    if (model->submitAll()) {
        model->database().commit();
        model->select();
    } else {
        model->database().rollback();
        QMessageBox::critical(); сообщение об ошибке
}
bynet Дата 20.7.2010, 11:20
  Открываю БД. (QSQLITE) База отображается в таблице. В таблице делаю изменение. После закрытия программы изменения не сохраняются. Как правильно сделать сохранения БД?

Код:
CODE
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("dataCompanyDB.db");
db.open();

model = new QSqlRelationalTableModel(this);

model->setTable("company");
model->select();

model->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Номер"));
model->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Название"));
model->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Адрес"));
model->setHeaderData(3, Qt::Horizontal, QString::fromLocal8Bit("УНП"));
model->setHeaderData(4, Qt::Horizontal, QString::fromLocal8Bit("Банк"));
model->setHeaderData(5, Qt::Horizontal, QString::fromLocal8Bit("Расчетный счет"));

mapper = new QDataWidgetMapper(this);
mapper->setSubmitPolicy(QDataWidgetMapper::AutoSubmit);
mapper->setModel(model);
mapper->setItemDelegate(new QSqlRelationalDelegate(this));
mapper->addMapping(nameCompany, 1);
mapper->addMapping(adressCompany, 2);
mapper->addMapping(unpEdit, 3);
mapper->addMapping(bankEdit, 4);
mapper->addMapping(numberBankEdit, 5);
mapper->setCurrentIndex(0);

view->setModel(model);


db.close();
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 15:24