Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 30.12.2018, 16:10   #1
firewate
Новичок
 
Регистрация: 30.12.2018
Сообщений: 1
Репутация: 10
По умолчанию Проблема с сохранением данных в таблице, 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


18:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru