TSqlDataUtilV2 Class
对sql语句格式进行转换的类 More...
Header: | #include <TSqlDataUtilV2> |
Static Public Members
QString | doubleQuote(const QString &iStr) |
void | fillWhere(TSqlWhereCompsiteV2 &iWhere, const QVariant &iWhereVar) |
QVariant | formatSqlValue(const QVariant &iValue, const QString &iFormat) |
QString | singleQuote(const QString &iStr) |
QStringList | sqlArrayToList(const QString &iStr) |
QStringList | strCapDollar(const QString &iStr) |
QString | strReplaceDollar(const QString &iStr, const QStringList &iKeys, const QVariantMap &iArgValuesVarMap) |
QString | variant2AndWhere(const QVariant &iWhere, const QVariantMap &iDataMap = QVariantMap(), const QString &iFieldQuote = "") |
QString | variant2EqualWhere(const QString &iField, const QVariant &iWhere, const QString &iFieldQuote = "", bool iList2In = true) |
QVariant | variantToSqlValue(const QVariant &iValue) |
Detailed Description
对sql语句格式进行转换的类
Member Function Documentation
[static]
QString TSqlDataUtilV2::doubleQuote(const QString &iStr)
将输入值转换为用双引号引用的值。
TSqlDataUtilV2::doubleQuote("abc");//"\"abc\""
[static]
void TSqlDataUtilV2::fillWhere(TSqlWhereCompsiteV2 &iWhere, const QVariant &iWhereVar)
通过 iWhereVar 来构造 iWhere。
TSqlWhereCompsiteV2 tmp; TSqlDataUtilV2::fillWhere(tmp, QString("a"));//"((a))" TSqlDataUtilV2::fillWhere(tmp, QStringList()<<"a"<<"b"<<"c");//"((a) AND (b) AND (c))" TSqlDataUtilV2::fillWhere(tmp, QVariantMap{{"a", "1"},{"b", "2"}});.//"((a = '1') AND (b = '2'))" TSqlDataUtilV2::fillWhere(tmp, QVariantList()<< QVariantMap{{"a", "1"},{"b", "2"}} << QVariantMap{{"c", "3"},{"d", "4"}}); //"((a = '1') AND (b = '2') AND (c = '3') AND (d = '4'))" qDebug()<<tmp.toSql();
[static]
QVariant TSqlDataUtilV2::formatSqlValue(const QVariant &iValue, const QString &iFormat)
将variant 按 iFormat 的格式进行转换
TSqlDataUtilV2::formatSqlValue(QDate(2018,1,1), "");//QVariant(QString, "2018-01-01") TSqlDataUtilV2::formatSqlValue(QDate(2018,1,1),"yyyy-MM-dd");//QVariant(QString, "2018-01-01") TSqlDataUtilV2::formatSqlValue(QDate(2018,1,1),"yyyy-MM");//QVariant(QString, "2018-01") TSqlDataUtilV2::formatSqlValue(QDateTime(QDate(2018,1,1), QTime(12,12,12)), "");//QVariant(QString, "2018-01-01 12:12:12") TSqlDataUtilV2::formatSqlValue(QDateTime(QDate(2018,1,1), QTime(12,12,12)),"yyyy-MM-dd hh:mm:ss");//QVariant(QString, "2018-01-01 12:12:12") TSqlDataUtilV2::formatSqlValue(QDateTime(QDate(2018,1,1), QTime(12,12,12)),"yyyy-MM-dd hh:mm");//QVariant(QString, "2018-01-01 12:12") TSqlDataUtilV2::formatSqlValue(QDateTime(QDate(2018,1,1), QTime(12,12,12)),"yyyy-MM-dd hh");//QVariant(QString, "2018-01-01 12") TSqlDataUtilV2::formatSqlValue(QDateTime(QDate(2018,1,1), QTime(12,12,12)),"yyyy-MM-dd");//QVariant(QString, "2018-01-01") TSqlDataUtilV2::formatSqlValue("{1,2,3,a,b,c}","ARRAY");//QVariant(QStringList, ("1", "2", "3", "a", "b", "c")) TSqlDataUtilV2::formatSqlValue("{\"a\": \"1\",\"b\": \"2\"}","JSON"); //QVariant(QVariantMap, QMap(("a", QVariant(QString, "1"))("b", QVariant(QString, "2"))))
[static]
QString TSqlDataUtilV2::singleQuote(const QString &iStr)
将输入值转换为用单引号引用的值,转换规则:\ -> \\; ' -> ''。
TSqlDataUtilV2::singleQuote("a\\bc\'");//"'a\\\\bc'''"
[static]
QStringList TSqlDataUtilV2::sqlArrayToList(const QString &iStr)
将输入值转换为QStringList。
TSqlDataUtilV2::sqlArrayToList("{1,2,3,a,b,c}");//("1", "2", "3", "a", "b", "c") TSqlDataUtilV2::sqlArrayToList("{\"a\": \"1\",\"b\": \"2\"}");//("a: 1", "b: 2")
[static]
QStringList TSqlDataUtilV2::strCapDollar(const QString &iStr)
将输入的字带$符号的QString转换为QStringList
TSqlDataUtilV2::strCapDollar("${a}");//("a") TSqlDataUtilV2::strCapDollar("${a,b}${c}");//("a,b", "c")
[static]
QString TSqlDataUtilV2::strReplaceDollar(const QString &iStr, const QStringList &iKeys, const QVariantMap &iArgValuesVarMap)
将字符串中带${value}的值进行转换。 iStr 为输入字符串。 iKeys 为需要转换的字符的列表。 iArgValuesVarMap 为转换规则。
TSqlDataUtilV2::strReplaceDollar("${1},${2},${2},3", QStringList()<<"1"<<"2", QVariantMap{{"1", "aa"},{"2", "bb"}}); //"aa,bb,bb,3"
[static]
QString TSqlDataUtilV2::variant2AndWhere(const QVariant &iWhere, const QVariantMap &iDataMap = QVariantMap(), const QString &iFieldQuote = "")
将传入的值转换为sql中Where语句And条件的形式。
TSqlDataUtilV2::variant2AndWhere(QString("abc"));//"abc" TSqlDataUtilV2::variant2AndWhere(QVariantMap{{"a", "1"},{"b", "2"}});//"a = '1' AND b = '2'" TSqlDataUtilV2::variant2AndWhere(QStringList()<<"a"<<"b"<<"c", QVariantMap{{"a", "1"},{"b", "2"}}); //"a = '1' AND b = '2' AND c IS NULL" TSqlDataUtilV2::variant2AndWhere(QStringList()<<"a"<<"b"<<"c", QVariantMap{{"a", "1"},{"b", "2"}}, "\'"); //"'a' = '1' AND 'b' = '2' AND 'c' IS NULL"
[static]
QString TSqlDataUtilV2::variant2EqualWhere(const QString &iField, const QVariant &iWhere, const QString &iFieldQuote = "", bool iList2In = true)
将传入的值转换为sql中where语句的条件的形式。
TSqlDataUtilV2::variant2EqualWhere("a", "1");//"a = '1'" TSqlDataUtilV2::variant2EqualWhere("a", "1", "\'");//"'a' = '1'" TSqlDataUtilV2::variant2EqualWhere("a", QStringList()<< "1" << "2", "\'");//"'a' IN ('1','2')"
[static]
QVariant TSqlDataUtilV2::variantToSqlValue(const QVariant &iValue)
将输入值进行格式转换。
TSqlDataUtilV2::variantToSqlValue(QVariantMap{{"a", "1"},{"b", "2"}});//QVariant(QString, "{\"a\":\"1\",\"b\":\"2\"}") TSqlDataUtilV2::variantToSqlValue(QVariantList()<<1<<2 );//QVariant(QString, "{1,2}") TSqlDataUtilV2::variantToSqlValue(QStringList()<<"1"<<"2"<<"3"<<"a"<<"b"<<"c");//QVariant(QString, "{1,2,3,a,b,c}") TSqlDataUtilV2::variantToSqlValue(QDate(2018, 1, 1));//QVariant(QString, "2018-01-01") TSqlDataUtilV2::variantToSqlValue(QDateTime(QDate(2018,1,1), QTime(12,12,12)));//QVariant(QString, "2018-01-01 12:12:12") TSqlDataUtilV2::variantToSqlValue("abc");//QVariant(QString, "abc") TSqlDataUtilV2::variantToSqlValue(true);//QVariant(bool, true)