#include "gensql.h" #include #include "QStringList" QString gensql::genInsertData(const QString & strTableName, const QVariantMap &vMap) { QString strInsert = "INSERT INTO %1(%2) VALUES(%3)"; QString strHeader;// QString strValue;// QStringList strKeys = vMap.keys(); for (int i = 0; i < strKeys.size(); i++) { strHeader += strKeys[i]; if (i + 1 < strKeys.size()) strHeader += ","; strValue += "'" + vMap[strKeys[i]].toString() + "'"; if (i + 1 < strKeys.size()) strValue += ","; } strInsert = strInsert.arg(strTableName, strHeader, strValue); return strInsert; } QString gensql::genSelect(const QString & strTableName, QStringList strSelectList, QString strClass) { QString strDstSelect; if (strClass.isEmpty()) { strDstSelect = "SELECT %1 FROM %2"; } else { strDstSelect = "SELECT %1 FROM %2 WHERE " + strClass; } if (0 == strSelectList.size()) { strDstSelect = strDstSelect.arg("*").arg(strTableName); } else { QString strSeletTmp = strSelectList[0]; for (int i = 1; i < strSelectList.size(); i++) { strSeletTmp += "," + strSelectList[i]; } strDstSelect = strDstSelect.arg(strSeletTmp, strTableName); } return strDstSelect; } QString gensql::genClass(QString strName, QString strValue) { QString strDst = ""; strDst += strName + " = '" + strValue + "'"; return strDst; } QString gensql::genUpdate(const QString & strTableName, QVariantMap &vMap, QString strClass) { QString strDst = "";// if (strClass.isEmpty()) { strDst = "UPDATE %1 SET %2";//全部修改 } else { strDst = "UPDATE %1 SET %2 WHERE %3";//指定修改 } QString strUpdateTmp = ""; if (vMap.size() != 0) { QStringList strList = vMap.keys(); strUpdateTmp += gensql::genClass(strList[0], vMap[strList[0]].toString()); for (int i = 1; i < strList.size(); i++) { strUpdateTmp += "," + gensql::genClass(strList[i], vMap[strList[i]].toString()); } } strDst = strDst.arg(strTableName, strUpdateTmp, strClass); return strDst; } QString gensql::genDeleteData(const QString & strTableName, QString strClass) { QString strDst; if (strClass.isEmpty()) { strDst = "DELETE FROM %1";//全部删除 } else { strDst = "DELETE FROM %1 WHERE %2";//指定删除 } strDst = strDst.arg(strTableName, strClass); return strDst; } QString gensql::genInsertColumn(const QString & strTableName, QString strName, QString strType) { QString strDst = "ALTER TABLE %1 ADD COLUMN %2 %3"; strDst = strDst.arg(strTableName).arg(strName).arg(strType); return strDst; } QString gensql::genDeleteColumn(const QString & strTableName, QString strColumnName) { QString strDst = "ALTER TABLE %1 DROP %2"; strDst = strDst.arg(strTableName, strColumnName); return strDst; } QString gensql::genCreateTabel(const QString strTable, QString strPrimary, QString strType, QVariantMap &vMap) { QString strDst = "CREATE TABLE IF NOT EXISTS %1 (%2)"; QString strColumn = strPrimary + " " + strType; QStringList strList = vMap.keys(); for (int i = 0; i < strList.size(); i++) { strColumn += ", " + strList[i] + " " + vMap[strList[i]].toString(); } strDst = strDst.arg(strTable, strColumn); return strDst; }