project/xyylMCWEACSystem/SqlGenerate.cpp

112 lines
2.4 KiB
C++

#include "SqlGenerate.h"
#include <QMapIterator>
SqlGenerate::SqlGenerate()
{
}
SqlGenerate::~SqlGenerate()
{
}
QString SqlGenerate::createTable(QString table, QMap<QString, QString> map)
{
QString content = QString("create table %1 (").arg(table);
return content;
}
QString SqlGenerate::insertData(QString table, QVariantMap map)
{
//insert or replace into
QString content = QString("insert or replace into %1 (").arg(table);
QString values = QString("values(");
content.append(") ");
values.append(")");
content.append(values);
content += QString(";");
return content;
}
QString SqlGenerate::selectWhere(QString table, QStringList Name, QString condition)
{
//QString content = QString("select from %1 ").arg(table);
QString content = QString("select ");// .arg(table);
QListIterator<QString> i(Name);
content += QString(";");//
return content;
}
QString SqlGenerate::selectUnion(QStringList sTables, QStringList Name, QString condition /*= ""*/)
{
QString s_select_Data;
if (!condition.isEmpty())
{
s_select_Data += condition;// QString(" where %1").arg(condition);
}
s_select_Data += QString(";");//
return s_select_Data;
}
QString SqlGenerate::createIndex(QString table, QString name)
{
QString content = QString("create index %1_index on %2 (%3)").arg(name).arg(table).arg(name);
content += QString(";");//
return content;
}
QString SqlGenerate::updateData(QString table, QVariantMap map, QString condition)
{
QString content = QString("update %1 set ").arg(table);
QMapIterator<QString, QVariant>i(map);
content += QString("where %1").arg(condition);
content += QString(";");
return content;
}
QString SqlGenerate::deleteData(QString table, QString condition)
{
QString content = QString("delete %1 ").arg(table);
content += QString("where '%1'").arg(condition);
content += QString(";");
return content;
}
bool SqlGenerate::checkCheckParameterSql(const QString& str)
{
QStringList keys;
keys << "and";
keys << "or";
keys << "*";
keys << "=";
keys << " ";
keys << "%0a";
keys << "%0d";
keys << "%";
keys << "/";
keys << "union";
keys << "|";
keys << "&";
keys << "^";
keys << "#";
keys << "/*";
keys << "*/";
keys << "delete";
keys << "insert";
keys << "select";
keys << "update";
keys << "drop";
for (int i = 0; i < keys.size(); i++)
{
if (str.contains(keys[i])) // != string::npos)
{
return false;
}
}
return true;
}