From 427742c0be996c7b32297b4b6ff7b634817c2702 Mon Sep 17 00:00:00 2001 From: "Hamed.Masafi" Date: Tue, 30 May 2017 23:02:12 +0430 Subject: [PATCH] wip: updateCommand --- src/sqlgeneratorbase.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/sqlgeneratorbase.cpp b/src/sqlgeneratorbase.cpp index d64b4ac..a366add 100644 --- a/src/sqlgeneratorbase.cpp +++ b/src/sqlgeneratorbase.cpp @@ -545,6 +545,40 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const return ret; } +QString SqlGeneratorBase::phraseUpdate(const PhraseData *d) const +{ + QString ret = ""; + + if (d->operatorCond != PhraseData::And && d->operatorCond != PhraseData::Equal) + qFatal("Update command does not accept any phrase else &, ="); + + switch(d->type){ + case PhraseData::Field: + ret = d->text; + break; + + case PhraseData::WithVariant: + ret = phrase(d->left) + " " + operatorString(d->operatorCond) + " " + escapeValue(d->operand); + break; + + case PhraseData::WithOther: + ret = phrase(d->left) + " " + operatorString(d->operatorCond) + " " + phrase(d->right); + break; + + case PhraseData::WithoutOperand: + ret = phrase(d->left) + " " + operatorString(d->operatorCond); + break; + + default: + ret = ""; + } + + if(d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or) + ret = "(" + ret + ")"; + + return ret; +} + QString SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const { switch (cond){