Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.12.2018, 15:10   #1
firewate
Новичок
Джуниор
 
Регистрация: 30.12.2018
Сообщений: 1
По умолчанию Проблема с сохранением данных в таблице, QTableView + QSqlTableModel.

Не сохраняются данные в таблице, использую QTableView и QSqlTableModel.
h

Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "cls_connectionform.h"
#include <QtSql>
#include <QtWidgets>
#include <string>
#include <QSqlTableModel>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent =nullptr);
    ~MainWindow();
private:
    QSqlDatabase db;
    QGridLayout layout;

    QTableView *view_students;

    QSqlQueryModel model_groups;
    QSqlQueryModel model_subjects;
    QSqlTableModel *model_students;

    QWidget* wgt_body;
    cls_connectionForm* connection_form;

signals:
    void need_update_view();
private slots:
    void slot_update_view();
    void slot_connect_to_serv();
    void slot_create_connect_form();

};

#endif // MAINWINDOW_H




cpp
Код:
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
   view_students= new QTableView();

    QMenu* pmnuFile = new QMenu("&Connect");
    pmnuFile->addAction("&Connect to server...", this, SLOT(slot_create_connect_form()), QKeySequence("CTRL+O"));
    menuBar()->addMenu(pmnuFile);

    connection_form = new cls_connectionForm();
    connection_form->dck_formConnection->setWindowTitle(("Connecting to database"));
    connect(connection_form->pbtnConnect,SIGNAL(clicked()), this, SLOT(slot_connect_to_serv()));


    menuBar()->addMenu(pmnuFAQ);
    db = QSqlDatabase::addDatabase("QPSQL");
model_students = new QSqlTableModel(nullptr, db);

//    layout.addWidget(view_students,1,2);

    QHBoxLayout* hLayout = new QHBoxLayout();

  qDebug()<<"Begin";
    layout.addLayout(hLayout,2,0,1,3);

    wgt_body =new QWidget();
    wgt_body->setLayout(&layout);
    setCentralWidget(wgt_body);

    view_students->setModel(model_students);


}

void MainWindow::slot_create_connect_form(){

    connection_form->dck_formConnection->show();

}

void MainWindow::slot_connect_to_serv(){

    db.setDatabaseName(connection_form->nameDB->text());
    db.setUserName(connection_form->nameUser->text());
    db.setHostName(connection_form->Host->text());
    db.setPort(connection_form->Port->text().toInt());
    db.setPassword(connection_form->Password->text());

    if (!db.open()) {
        qDebug()<<"db not open";
        QMessageBox* pmbx =
         new QMessageBox(QMessageBox::Warning,
         "Warning",
         "Error");
        pmbx->show();
        statusBar()->showMessage("Error with database", 3000);
     }
    else {statusBar()->showMessage("Bd is open", 3000);
        qDebug()<<"Bd is open" ;


model_students->setTable("name");
         model_students->setEditStrategy(QSqlTableModel::OnFieldChange);
         model_students->select();

         view_students->setModel(model_students);
         view_students->show();
      // emit need_update_view();

    }
    connection_form->dck_formConnection->close();
}
Сама таблица открывается, есть возможность редактирования внутри таблицы, но при обновлении новые данные не сохраняются. Подскажите, пожалуйста, в чём я мог ошибиться.
firewate вне форума Ответить с цитированием
Старый 24.07.2019, 08:20   #2
Viktor_AE
Пользователь
 
Регистрация: 23.07.2019
Сообщений: 14
По умолчанию

Так Вы нигде в коде не сохраняете данные?
Например так:
Код:
void ViewCatalogForm::save()
{
    if (!mapper.isNull()) {
        ui->tableView->submit();
        mapper->save();
    }
}
Viktor_AE вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с сохранением данных в одной из колонки TDBGrid KBO Общие вопросы Delphi 4 27.09.2017 16:17
Проблема с сохранением данных из datagridview в базу .mdf lax_light C# (си шарп) 0 20.01.2015 15:45
Проблема с сохранением данных. Simmularious Microsoft Office Excel 6 09.12.2010 09:28
Проблема с сохранением данных KLOP Общие вопросы Delphi 10 09.04.2009 11:17
Проблема с сохранением данных в другую таблицу HAMMAN Помощь студентам 1 26.05.2008 08:30