You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wheeldetect/src/tpMain/modelmgrdb.cpp

93 lines
2.2 KiB
C++

#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;
}