diff --git a/sqlite.cpp b/sqlite.cpp new file mode 100644 index 00000000..03bb7d0f --- /dev/null +++ b/sqlite.cpp @@ -0,0 +1,328 @@ +#include +#include +#include +#include +#include +#include +#include +#include "../../include/tool/sqlite.h" + +namespace database +{ + sqlite::sqlite() + { + createDB(); + } + + sqlite::~sqlite() + { + db.close(); + } + + int sqlite::createDB() + { + int result; + if(QSqlDatabase::contains("QSQLITE")) + { + db = QSqlDatabase::database("QSQLITE"); + result = 0; + if(db.open() == false){ + qDebug() << "Error: Failed to connect database." << db.lastError(); + result = 2; + } + } + else + { + db = QSqlDatabase::addDatabase("QSQLITE"); + db.setDatabaseName("JointSecure.db"); + if(db.open() == false){ + qDebug() << "Error: Failed to connect database." << db.lastError(); + result = 2; + } + else + { + createMissionTable(); + createRobortTable(); + } + + result = 1; + } + + return result; + } + + int sqlite::createMissionTable() + { + int result; + QString createSql = + QString("CREATE TABLE Mission(\ + id INT PRIMARY KEY NOT NULL,\ + name TEXT NOT NULL,\ + type INT NOT NULL)"); + QSqlQuery query; + if(!query.exec(createSql)) + { + qDebug() << "Error: Fail to create table." << query.lastError(); + result = 0; + } + else + { + qDebug() << "Table created!"; + result = 1; + } + return result; + } + + int sqlite::createRobortTable() + { + int result; + QString createSql = + QString("CREATE TABLE Robort(\ + id INT PRIMARY KEY NOT NULL,\ + name TEXT NOT NULL,\ + type INT NOT NULL,\ + ip TEXT NOT NULL,\ + mission TEXT NOT NULL)"); + QSqlQuery query; + if(!query.exec(createSql)) + { + qDebug() << "Error: Fail to create table." << query.lastError(); + result = 0; + } + else + { + qDebug() << "Table created!"; + result = 1; + } + return result; + + } + + int sqlite::addMission(std::string name, int type) + { + //获得Mission表最大id + QSqlQuery id_query; + QString select_max_sql = QString("select max(id) from Mission"); + int max_id = 0; + id_query.prepare(select_max_sql); + if (!id_query.exec()) + { + qDebug() << "max_id error:"< sqlite::traverseMission() + { + std::vector missionlist; + QSqlQuery mission_query; + QString select_max_sql = QString("select name from Mission"); + int max_id = 0; + mission_query.prepare(select_max_sql); + if (!mission_query.exec()) + { + qDebug() << "Mission name error:"<