FixedAdding #1
@ -1,7 +1,6 @@
|
||||
#ifndef ADDC_H
|
||||
#define ADDC_H
|
||||
#include"card.h"
|
||||
#include "manager.h"
|
||||
#include "record.h"
|
||||
|
||||
|
||||
|
||||
@ -5,7 +5,6 @@
|
||||
#include <QDateTime>
|
||||
|
||||
#include "record.h"
|
||||
#include "manager.h"
|
||||
#include"genpass.h"
|
||||
|
||||
namespace Ui {
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
#include "hello.h"
|
||||
#include "ui_hello.h"
|
||||
#include "manager.h"
|
||||
#include "mainwindow.h"
|
||||
#include <QFileDialog>
|
||||
#include <QString>
|
||||
|
||||
@ -32,7 +32,6 @@ private slots:
|
||||
private:
|
||||
Ui::Hello *ui;
|
||||
MainWindow mainwindow;
|
||||
Manager* manager;
|
||||
AddDialog dial;
|
||||
|
||||
static const QString fileDialogFilterString;
|
||||
|
||||
@ -1,116 +0,0 @@
|
||||
#include "manager.h"
|
||||
|
||||
Manager::Manager()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Manager::init(){}
|
||||
Record* Manager::getRecord() const{
|
||||
return nullptr;
|
||||
}
|
||||
void Manager::initAppWithDatabaseFile(const QString &dbFileFullPath) {
|
||||
qDebug() << "dbFileFullPath=" << dbFileFullPath;
|
||||
if (dbFileFullPath.isEmpty()) return;
|
||||
connectToDatabase(dbFileFullPath);
|
||||
createModel();
|
||||
// setUserInterfaceEnabled(true);
|
||||
}
|
||||
void Manager::putRecord(Record* record){
|
||||
query->clear();
|
||||
qDebug() << "query->clear();";
|
||||
query->prepare("SELECT MAX(r.id) AS 'number_of_records' FROM records AS 'r';");
|
||||
query->exec();
|
||||
// if (!query->isActive())
|
||||
// QMessageBox::warning(this, tr("Database Error"), query->lastError().text());
|
||||
query->next();
|
||||
QString count = QString::number(query->value(0).toInt() + 1);
|
||||
// if (id.isEmpty() || lastName.isEmpty() || firstName.isEmpty() || occupation.isEmpty() || yeaOfAdmission.isEmpty())
|
||||
// return;
|
||||
|
||||
query->clear();
|
||||
|
||||
qDebug() << "Добавление строки:" <<
|
||||
query->prepare("INSERT INTO records(id, name, username, password, url, note, time)" \
|
||||
"VALUES(:id, :name, :username, :password, :url, :note, :time)");
|
||||
// query->prepare("INSERT INTO employees(id, last_name, first_name, occupation, year_of_admission) " \
|
||||
// "VALUES(:id, :last_name, :first_name, :occupation, :year_of_admission)");
|
||||
query->bindValue(":id", record->getId());
|
||||
query->bindValue(":name", record->getName());
|
||||
query->bindValue(":username", record->getUsername());
|
||||
query->bindValue(":password", record->getPassword());
|
||||
query->bindValue(":url", record->getURL());
|
||||
query->bindValue(":note", record->getNote());
|
||||
query->bindValue(":time", record->getTime());
|
||||
query->exec();
|
||||
}
|
||||
void Manager::updateRecord(){}
|
||||
void Manager::deleteRecord()
|
||||
{
|
||||
// if (ui->spinBoxID->text().isEmpty())
|
||||
// return;
|
||||
QString id = "zzz";
|
||||
// QString id = ui->spinBoxID->text();
|
||||
|
||||
query->clear();
|
||||
|
||||
qDebug() << "Удаление строки:" <<
|
||||
query->exec(QString("DELETE FROM recordsn3ox WHERE id = %1;").arg(id));
|
||||
|
||||
model->select(); // наполнить модель данными из таблицы, учитывая условия фильтрации и сортировки.
|
||||
}
|
||||
|
||||
void Manager::connectToDatabase(const QString &dbName)
|
||||
{
|
||||
m_db = QSqlDatabase::addDatabase("QSQLITE"); // соединение объекта базы данных с СУБД.
|
||||
//m_db.setDatabaseName(dbName); // определение имени базы данных.
|
||||
m_db.setDatabaseName("my_db.sqlite"); // определение имени базы данных.
|
||||
|
||||
if (!m_db.open()) // проверка на ошибку при открытии или создании базы данных.
|
||||
throw "Can't open database!";
|
||||
query = new QSqlQuery(m_db); // создание объекта для запроса.
|
||||
if (!m_db.tables().contains("records")) // если в базе не существует таблица records
|
||||
{ // то создание таблицы records:
|
||||
|
||||
qDebug() << "В базе не существует таблица records!";
|
||||
|
||||
query->clear(); // очистка запроса.
|
||||
// id
|
||||
// name
|
||||
// username
|
||||
// URL
|
||||
// Note
|
||||
// Time
|
||||
qDebug() << "Создание таблицы records:" <<
|
||||
query->exec("CREATE TABLE records(" \
|
||||
" id TEXT PRIMARY KEY NOT NULL, /* идентификатор */" \
|
||||
" name TEXT, /* имя */" \
|
||||
" username TEXT, /* имя пользователя */" \
|
||||
" password TEXT, /* пароль */" \
|
||||
" url TEXT, /* web url */" \
|
||||
" note TEXT, /* примечания */" \
|
||||
" time INTEGER /* дата добавления */" \
|
||||
");"); // исполнение запроса на добавление записи.
|
||||
|
||||
}
|
||||
}
|
||||
void Manager::createModel()
|
||||
{
|
||||
model = new QSqlTableModel(); // создание редактируемой модели базы данных.
|
||||
|
||||
model->setTable("employees"); // создание модели таблицы employees.
|
||||
model->select(); // заполнение модели данными.
|
||||
|
||||
// Выбор стратегии сохранения изменений в базе данных:
|
||||
model->setEditStrategy(QSqlTableModel::OnFieldChange); // сохранение происходит при переходе к другому полю.
|
||||
|
||||
// ui->tableViewEmployees->setModel(model); // соединение модели и ее табличного представления в форме.
|
||||
|
||||
// model->setHeaderData(0, Qt::Horizontal, tr("Код"));
|
||||
// model->setHeaderData(1, Qt::Horizontal, tr("Фамилия"));
|
||||
// model->setHeaderData(2, Qt::Horizontal, tr("Имя"));
|
||||
// model->setHeaderData(3, Qt::Horizontal, tr("Род занятий"));
|
||||
// model->setHeaderData(4, Qt::Horizontal, tr("Год поступления"));
|
||||
}
|
||||
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
#ifndef MANAGER_H
|
||||
#define MANAGER_H
|
||||
|
||||
#include <QtSql>
|
||||
|
||||
#include "record.h"
|
||||
|
||||
|
||||
class Manager
|
||||
{
|
||||
public:
|
||||
Manager();
|
||||
void init();
|
||||
Record* getRecord() const;
|
||||
void putRecord(Record* record);
|
||||
void updateRecord();
|
||||
void deleteRecord();
|
||||
|
||||
void initAppWithDatabaseFile(const QString &dbFileFullPath);
|
||||
void connectToDatabase(const QString &dbName);
|
||||
void createModel();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
|
||||
QSqlDatabase m_db; // объект базы данных.
|
||||
QSqlQuery *query; // указатель на запрос.
|
||||
QSqlTableModel *model; // указатель на таблицу данных в приложении.
|
||||
};
|
||||
|
||||
#endif // MANAGER_H
|
||||
Loading…
Reference in New Issue
Block a user