FixedAdding #1

Merged
danylo_nevidomiy merged 33 commits from FixedAdding into main 2025-02-12 21:46:46 +03:00
6 changed files with 0 additions and 152 deletions
Showing only changes of commit 69a6c1c3e3 - Show all commits

View File

@ -1,7 +1,6 @@
#ifndef ADDC_H
#define ADDC_H
#include"card.h"
#include "manager.h"
#include "record.h"

View File

@ -5,7 +5,6 @@
#include <QDateTime>
#include "record.h"
#include "manager.h"
#include"genpass.h"
namespace Ui {

View File

@ -1,6 +1,5 @@
#include "hello.h"
#include "ui_hello.h"
#include "manager.h"
#include "mainwindow.h"
#include <QFileDialog>
#include <QString>

View File

@ -32,7 +32,6 @@ private slots:
private:
Ui::Hello *ui;
MainWindow mainwindow;
Manager* manager;
AddDialog dial;
static const QString fileDialogFilterString;

View File

@ -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("Год поступления"));
}

View File

@ -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