-
-
Notifications
You must be signed in to change notification settings - Fork 225
Expand file tree
/
Copy pathtcriteriaconverter.cpp
More file actions
62 lines (53 loc) · 1.67 KB
/
Copy pathtcriteriaconverter.cpp
File metadata and controls
62 lines (53 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* Copyright (c) 2010-2019, AOYAMA Kazuharu
* All rights reserved.
*
* This software may be used and distributed according to the terms of
* the New BSD License, which is incorporated herein by reference.
*/
#include <QMap>
#include <TCriteriaConverter>
/*!
* \class TCriteriaConverter<>
* \brief The TCriteriaConverter class is a template class that converts
* TCriteria objects to SQL strings.
* This class is for internal use only.
* \sa TCriteria
*/
const QMap<int, QString> formatHash = {
{TSql::Equal, "=%1"},
{TSql::NotEqual, "<>%1"},
{TSql::LessThan, "<%1"},
{TSql::GreaterThan, ">%1"},
{TSql::LessEqual, "<=%1"},
{TSql::GreaterEqual, ">=%1"},
{TSql::IsNull, " IS NULL"},
{TSql::IsEmpty, "(%1 IS NULL OR %1='')"},
{TSql::IsNotNull, " IS NOT NULL"},
{TSql::IsNotEmpty, "%1 IS NOT NULL AND %1<>''"},
{TSql::Like, " LIKE %1"},
{TSql::NotLike, " NOT LIKE %1"},
{TSql::LikeEscape, " LIKE %1 ESCAPE %2"},
{TSql::NotLikeEscape, " NOT LIKE %1 ESCAPE %2"},
{TSql::ILike, " ILIKE %1"},
{TSql::NotILike, " NOT ILIKE %1"},
{TSql::ILikeEscape, " ILIKE %1 ESCAPE %2"},
{TSql::NotILikeEscape, " NOT ILIKE %1 ESCAPE %2"},
{TSql::In, " IN (%1)"},
{TSql::NotIn, " NOT IN (%1)"},
{TSql::Between, " BETWEEN %1 AND %2"},
{TSql::NotBetween, " NOT BETWEEN %1 AND %2"},
{TSql::Any, "ANY (%1)"},
{TSql::All, "ALL (%1)"},
};
QString TSql::formatArg(int op)
{
return formatHash.value(op);
}
QString TSql::formatArg(int op, const QString &a)
{
return formatHash.value(op).arg(a);
}
QString TSql::formatArg(int op, const QString &a1, const QString &a2)
{
return formatHash.value(op).arg(a1, a2);
}