Changeset View
Changeset View
Standalone View
Standalone View
src/expression/KDbConstExpression.cpp
1 | /* This file is part of the KDE project | 1 | /* This file is part of the KDE project | ||
---|---|---|---|---|---|
2 | Copyright (C) 2003-2012 Jarosław Staniek <staniek@kde.org> | 2 | Copyright (C) 2003-2018 Jarosław Staniek <staniek@kde.org> | ||
3 | 3 | | |||
4 | Based on nexp.cpp : Parser module of Python-like language | 4 | Based on nexp.cpp : Parser module of Python-like language | ||
5 | (C) 2001 Jarosław Staniek, MIMUW (www.mimuw.edu.pl) | 5 | (C) 2001 Jarosław Staniek, MIMUW (www.mimuw.edu.pl) | ||
6 | 6 | | |||
7 | This library is free software; you can redistribute it and/or | 7 | This library is free software; you can redistribute it and/or | ||
8 | modify it under the terms of the GNU Library General Public | 8 | modify it under the terms of the GNU Library General Public | ||
9 | License as published by the Free Software Foundation; either | 9 | License as published by the Free Software Foundation; either | ||
10 | version 2 of the License, or (at your option) any later version. | 10 | version 2 of the License, or (at your option) any later version. | ||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | 74 | else { | |||
75 | return KDbField::Text; | 75 | return KDbField::Text; | ||
76 | } | 76 | } | ||
77 | case SQL_TRUE: | 77 | case SQL_TRUE: | ||
78 | case SQL_FALSE: | 78 | case SQL_FALSE: | ||
79 | return KDbField::Boolean; | 79 | return KDbField::Boolean; | ||
80 | case REAL_CONST: | 80 | case REAL_CONST: | ||
81 | return KDbField::Double; | 81 | return KDbField::Double; | ||
82 | case DATE_CONST: | 82 | case DATE_CONST: | ||
83 | if (value.canConvert<KDbDate>() && value.value<KDbDate>().isValid()) { | ||||
83 | return KDbField::Date; | 84 | return KDbField::Date; | ||
85 | } else if (value.canConvert<QDate>() && value.toDate().isValid()) { | ||||
86 | return KDbField::Date; | ||||
87 | } | ||||
88 | break; | ||||
84 | case DATETIME_CONST: | 89 | case DATETIME_CONST: | ||
90 | if (value.canConvert<KDbDateTime>() && value.value<KDbDateTime>().isValid()) { | ||||
85 | return KDbField::DateTime; | 91 | return KDbField::DateTime; | ||
92 | } else if (value.canConvert<QDateTime>() && value.toDateTime().isValid()) { | ||||
93 | return KDbField::DateTime; | ||||
94 | } | ||||
95 | break; | ||||
86 | case TIME_CONST: | 96 | case TIME_CONST: | ||
97 | if (value.canConvert<KDbTime>() && value.value<KDbTime>().isValid()) { | ||||
98 | return KDbField::Time; | ||||
99 | } else if (value.canConvert<QTime>() && value.toTime().isValid()) { | ||||
87 | return KDbField::Time; | 100 | return KDbField::Time; | ||
88 | } | 101 | } | ||
102 | break; | ||||
103 | } | ||||
89 | return KDbField::InvalidType; | 104 | return KDbField::InvalidType; | ||
90 | } | 105 | } | ||
91 | 106 | | |||
92 | void KDbConstExpressionData::debugInternal(QDebug dbg, KDb::ExpressionCallStack* callStack) const | 107 | void KDbConstExpressionData::debugInternal(QDebug dbg, KDb::ExpressionCallStack* callStack) const | ||
93 | { | 108 | { | ||
94 | Q_UNUSED(callStack); | 109 | Q_UNUSED(callStack); | ||
95 | QString res = QLatin1String("ConstExp(") | 110 | QString res = QLatin1String("ConstExp(") | ||
96 | + token.name() | 111 | + token.name() | ||
Show All 23 Lines | 134 | case SQL_TRUE: | |||
120 | return KDb::valueToSql(driver, KDbField::Boolean, 1); | 135 | return KDb::valueToSql(driver, KDbField::Boolean, 1); | ||
121 | case SQL_FALSE: | 136 | case SQL_FALSE: | ||
122 | return KDb::valueToSql(driver, KDbField::Boolean, 0); | 137 | return KDb::valueToSql(driver, KDbField::Boolean, 0); | ||
123 | case REAL_CONST: | 138 | case REAL_CONST: | ||
124 | return KDbEscapedString(value.toByteArray()); | 139 | return KDbEscapedString(value.toByteArray()); | ||
125 | case DATE_CONST: | 140 | case DATE_CONST: | ||
126 | return KDb::valueToSql(driver, KDbField::Date, value); | 141 | return KDb::valueToSql(driver, KDbField::Date, value); | ||
127 | case DATETIME_CONST: | 142 | case DATETIME_CONST: | ||
128 | return driver ? driver->valueToSql(KDbField::DateTime, value) | 143 | return KDb::valueToSql(driver, KDbField::Date, value); | ||
129 | : KDbEscapedString('\'') | | |||
130 | + KDbEscapedString(value.toDateTime().date().toString(Qt::ISODate)) | | |||
131 | + ' ' + value.toDateTime().time().toString(Qt::ISODate) + '\''; | | |||
132 | case TIME_CONST: | 144 | case TIME_CONST: | ||
133 | return KDb::valueToSql(driver, KDbField::Time, value); | 145 | return KDb::valueToSql(driver, KDbField::Time, value); | ||
134 | case INTEGER_CONST: | 146 | case INTEGER_CONST: | ||
135 | default: | 147 | default: | ||
136 | break; | 148 | break; | ||
137 | } | 149 | } | ||
138 | return KDbEscapedString(value.toByteArray()); | 150 | return KDbEscapedString(value.toByteArray()); | ||
139 | } | 151 | } | ||
▲ Show 20 Lines • Show All 59 Lines • Show Last 20 Lines |