112 lines
2.4 KiB
C++
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;
|
|
}
|
|
|