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)