Доброе время суток лорчане.
Раньше программировал под дотнет, теперь как будто в новом мире оказался, извиняюсь если где то очень грубо ошибаюсь.
Привел код к следующими виду.
в sql_query.h
#ifndef SQL_QUERY_H
#define SQL_QUERY_H
#include <QMainWindow>
#include <QtSql>
#include <string>
using namespace std;
class sql_query
{
public:
sql_query(string command);
QSqlQueryModel * modal;
QSqlQuery* query;
string message;
};
#endif // SQL_QUERY_H
#include <string>
using namespace std;
sql_query::sql_query(string command)
{
public:
QSqlQueryModel * modal;
QSqlQuery* query;
string message;
/* Загружается данный из БД в tableView */{
QSqlDatabase sdb = QSqlDatabase::addDatabase("QSQLITE");
sdb.setDatabaseName("/home/localadmin/project/Inventory_Management/DB_IM.db");
sdb.setHostName("localhost");
modal = new QSqlQueryModel();
query = new QSqlQuery();
if(!sdb.open()){
message = "Подключение к базе не удалось";
}
else
{
query->prepare(command);
query->exec();
//modal->setQuery(*query);
sdb.close();
}
}
}
#include "directory_firma.h"
#include "ui_directory_firma.h"
#include "qsqldatabase.h"
#include "qsql.h"
#include "qsqlquery.h"
#include "qsqlquerymodel.h"
#include "qdebug.h"
#include <sql_query.h>
directory_firma::directory_firma(QWidget *parent) :
QDialog(parent),
ui(new Ui::directory_firma)
{
ui->setupUi(this);
sql_query("select directory_firma_name FROM directory_firma");
ui->tableView->setModel(*modal);
modal->setQuery(*query);
qDebug() <<(modal->rowCount());
}
directory_firma::~directory_firma()
{
delete ui;
}
}
Компилятор ругается:
../Inventory_Management/directory_firma.cpp:17:30: error: ‘modal’ was not declared in this scope
ui->tableView->setModel(*modal);
^~~~~
../Inventory_Management/directory_firma.cpp:18:22: error: ‘query’ was not declared in this scope
modal->setQuery(*query);
^~~~~
Описал в заголовочном файле sql_query.h переменные и (правда привел их к типу паблик(позже буду разбираться с «полями»)) и функцию.
И реализовал функцию в sql_query.cpp.
Подскажите пожалуйста, что я делаю не так?