|
|
|
|
|
#include "modelmgrdb.h"
|
|
|
|
|
|
#include "gensql.h"
|
|
|
|
|
|
#include "WheelModel.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ModelMgrDB::ModelMgrDB(const QString& dbName, const QString& dbType) :DataBaseSql(dbName, dbType)
|
|
|
|
|
|
{
|
|
|
|
|
|
// db = QSqlDatabase::addDatabase("QSQLITE");
|
|
|
|
|
|
// db.setDatabaseName(dbName);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ModelMgrDB::~ModelMgrDB()
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool ModelMgrDB::InitDatabase()
|
|
|
|
|
|
{
|
|
|
|
|
|
if (!db->open())
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
QVariantMap vMap;
|
|
|
|
|
|
vMap.insert(_MD_MODEL, "VARCHAR(32)");//model 模型名称
|
|
|
|
|
|
vMap.insert(_MD_DIAMETER, "INT(100)");//直径
|
|
|
|
|
|
vMap.insert(_MD_HIGHT, "INT(100)");//高度
|
|
|
|
|
|
vMap.insert("picpath", "VARCHAR(32)");
|
|
|
|
|
|
vMap.insert(_MD_ROTATE, "INT(100)");
|
|
|
|
|
|
if (!CreatTable("modelTable", _MD_PRIMARY_KEY, vMap))
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool ModelMgrDB::addData(QVariantMap m_map)
|
|
|
|
|
|
{
|
|
|
|
|
|
return InsertOneData("modelTable", m_map);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool ModelMgrDB::ReadOutData(QMap<QString, class IWheelModel*> &m_MapString)
|
|
|
|
|
|
{
|
|
|
|
|
|
QString select_sql = QString("select * from ") + "modelTable";
|
|
|
|
|
|
QSqlQuery sql = db->exec(select_sql);
|
|
|
|
|
|
QSqlError err = sql.lastError();
|
|
|
|
|
|
int t = err.type();
|
|
|
|
|
|
if (t != QSqlError::NoError)
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
m_MapString.clear();
|
|
|
|
|
|
while (sql.next())
|
|
|
|
|
|
{
|
|
|
|
|
|
WheelModel * pModel = new WheelModel;
|
|
|
|
|
|
pModel->m_strModelID = sql.value(_MD_MODEL).toString();
|
|
|
|
|
|
pModel->m_dDiameter = sql.value(_MD_DIAMETER).toDouble();
|
|
|
|
|
|
pModel->m_dHeight = sql.value(_MD_HIGHT).toDouble();
|
|
|
|
|
|
pModel->m_strPath = sql.value("picpath").toString();
|
|
|
|
|
|
pModel->m_nRotate = sql.value(_MD_ROTATE).toInt();
|
|
|
|
|
|
m_MapString.insert(pModel->m_strModelID, pModel);
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool ModelMgrDB::DeleteModelData(QString m_modelName)
|
|
|
|
|
|
{
|
|
|
|
|
|
QString m_map = gensql::genClass(_MD_MODEL, m_modelName);//!>生成where条件语句
|
|
|
|
|
|
QString strSql = gensql::genDeleteData("modelTable", m_map);
|
|
|
|
|
|
QString sqlstr = QString("delete");
|
|
|
|
|
|
db->exec(strSql);
|
|
|
|
|
|
if (db->lastError().isValid())
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool ModelMgrDB::UpdateModelData(QString m_modelName, QVariantMap m_map)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (m_modelName.isEmpty() || m_map.empty()) {
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
QString m_str = gensql::genClass(_MD_MODEL, m_modelName);//!>生成where条件语句
|
|
|
|
|
|
QString strSql = gensql::genUpdate("modelTable", m_map, m_str);
|
|
|
|
|
|
db->exec(strSql);
|
|
|
|
|
|
if (db->lastError().isValid())
|
|
|
|
|
|
{
|
|
|
|
|
|
return false;
|
|
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
|
|
|
}
|