some improvment
This commit is contained in:
parent
0f13da95e8
commit
09877631d2
2
nut.pri
2
nut.pri
|
|
@ -1,4 +1,4 @@
|
||||||
QT += core widgets sql
|
QT += core sql
|
||||||
|
|
||||||
INCLUDEPATH += $$PWD/include
|
INCLUDEPATH += $$PWD/include
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -307,8 +307,6 @@ Database::Database(QObject *parent)
|
||||||
Q_D(Database);
|
Q_D(Database);
|
||||||
// d->changeLogs->sett
|
// d->changeLogs->sett
|
||||||
DatabasePrivate::lastId++;
|
DatabasePrivate::lastId++;
|
||||||
// m__change_logs = new TableSet<ChangeLogTable>(this);
|
|
||||||
qDebug() << "normal constructor called in database";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Database::Database(const Database &other, QObject *parent)
|
Database::Database(const Database &other, QObject *parent)
|
||||||
|
|
@ -323,9 +321,6 @@ Database::Database(const Database &other, QObject *parent)
|
||||||
setDatabaseName(other.databaseName());
|
setDatabaseName(other.databaseName());
|
||||||
setUserName(other.userName());
|
setUserName(other.userName());
|
||||||
setPassword(other.password());
|
setPassword(other.password());
|
||||||
|
|
||||||
qDebug() << "copy constructor called in database";
|
|
||||||
// m__change_logs = new TableSet<ChangeLogTable>(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Database::~Database()
|
Database::~Database()
|
||||||
|
|
@ -504,7 +499,6 @@ QSqlQuery Database::exec(QString sql)
|
||||||
{
|
{
|
||||||
Q_D(Database);
|
Q_D(Database);
|
||||||
|
|
||||||
qInfo("Execute command: %s", qPrintable(sql));
|
|
||||||
QSqlQuery q = d->db.exec(sql);
|
QSqlQuery q = d->db.exec(sql);
|
||||||
if (d->db.lastError().type() != QSqlError::NoError)
|
if (d->db.lastError().type() != QSqlError::NoError)
|
||||||
qWarning("Error executing sql command: %s; Command=%s",
|
qWarning("Error executing sql command: %s; Command=%s",
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ TableModel *DatabaseModel::modelByClass(QString className) const
|
||||||
{
|
{
|
||||||
for(int i = 0; i < size(); i++){
|
for(int i = 0; i < size(); i++){
|
||||||
TableModel *s = at(i);
|
TableModel *s = at(i);
|
||||||
qDebug() << s->className();
|
|
||||||
if(s->className() == className)
|
if(s->className() == className)
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ Q_OUTOFLINE_TEMPLATE QList<T *> Query<T>::toList(int count)
|
||||||
d->orderPhrases,
|
d->orderPhrases,
|
||||||
d->tableName,
|
d->tableName,
|
||||||
d->joinClassName);
|
d->joinClassName);
|
||||||
qDebug() << sql;
|
|
||||||
QSqlQuery q = d->database->exec(sql);
|
QSqlQuery q = d->database->exec(sql);
|
||||||
|
|
||||||
// QString pk = TableModel::findByName(d->tableName)->primaryKey();
|
// QString pk = TableModel::findByName(d->tableName)->primaryKey();
|
||||||
|
|
@ -211,7 +211,6 @@ Q_OUTOFLINE_TEMPLATE QList<F> Query<T>::select(const FieldPhrase<F> f)
|
||||||
d->joinClassName);
|
d->joinClassName);
|
||||||
QSqlQuery q = d->database->exec(sql);
|
QSqlQuery q = d->database->exec(sql);
|
||||||
|
|
||||||
qDebug() << sql;
|
|
||||||
while (q.next()) {
|
while (q.next()) {
|
||||||
QVariant v = q.value(f.data()->text);
|
QVariant v = q.value(f.data()->text);
|
||||||
ret.append(v.value<F>());
|
ret.append(v.value<F>());
|
||||||
|
|
@ -241,7 +240,6 @@ Q_OUTOFLINE_TEMPLATE int Query<T>::count()
|
||||||
d->select = "COUNT(*)";
|
d->select = "COUNT(*)";
|
||||||
QSqlQuery q = d->database->exec(d->database->sqlGenertor()->selectCommand("COUNT(*)", d->wheres, d->orders, d->tableName, d->joinClassName));
|
QSqlQuery q = d->database->exec(d->database->sqlGenertor()->selectCommand("COUNT(*)", d->wheres, d->orders, d->tableName, d->joinClassName));
|
||||||
|
|
||||||
qDebug() << "sql="<<d->database->sqlGenertor()->selectCommand("COUNT(*)", d->wheres, d->orders, d->tableName, d->joinClassName);
|
|
||||||
if(q.next())
|
if(q.next())
|
||||||
return q.value(0).toInt();
|
return q.value(0).toInt();
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -322,7 +320,6 @@ Q_OUTOFLINE_TEMPLATE int Query<T>::update(WherePhrase phrase)
|
||||||
phrase,
|
phrase,
|
||||||
d->wheres,
|
d->wheres,
|
||||||
d->tableName);
|
d->tableName);
|
||||||
qDebug() << sql;
|
|
||||||
QSqlQuery q = d->database->exec(sql);
|
QSqlQuery q = d->database->exec(sql);
|
||||||
|
|
||||||
if (m_autoDelete)
|
if (m_autoDelete)
|
||||||
|
|
@ -338,7 +335,6 @@ Q_OUTOFLINE_TEMPLATE int Query<T>::remove()
|
||||||
QString sql = d->database->sqlGenertor()->deleteCommand(
|
QString sql = d->database->sqlGenertor()->deleteCommand(
|
||||||
d->wheres,
|
d->wheres,
|
||||||
d->tableName);
|
d->tableName);
|
||||||
qDebug() << sql;
|
|
||||||
QSqlQuery q = d->database->exec(sql);
|
QSqlQuery q = d->database->exec(sql);
|
||||||
return q.numRowsAffected();
|
return q.numRowsAffected();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,6 @@ QStringList SqlGeneratorBase::diff(DatabaseModel lastModel, DatabaseModel newMod
|
||||||
TableModel *oldTable = lastModel.model(tableName);
|
TableModel *oldTable = lastModel.model(tableName);
|
||||||
TableModel *newTable = newModel.model(tableName);
|
TableModel *newTable = newModel.model(tableName);
|
||||||
QString sql = diff(oldTable, newTable);
|
QString sql = diff(oldTable, newTable);
|
||||||
qDebug() << "diff sql"<<sql;
|
|
||||||
ret << sql;
|
ret << sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ TableModel::TableModel(int typeId, QString tableName)
|
||||||
_typeId = typeId;
|
_typeId = typeId;
|
||||||
_name = tableName;
|
_name = tableName;
|
||||||
_className = tableMetaObject->className();
|
_className = tableMetaObject->className();
|
||||||
qDebug() << "my name is" << _className;
|
|
||||||
//#ifdef NUT_NAMESPACE
|
//#ifdef NUT_NAMESPACE
|
||||||
// if(_className.startsWith(QT_STRINGIFY(NUT_NAMESPACE) "::"))
|
// if(_className.startsWith(QT_STRINGIFY(NUT_NAMESPACE) "::"))
|
||||||
// _className = _className.replace(QT_STRINGIFY(NUT_NAMESPACE) "::", "");
|
// _className = _className.replace(QT_STRINGIFY(NUT_NAMESPACE) "::", "");
|
||||||
|
|
@ -191,10 +191,6 @@ qDebug() << "my name is" << _className;
|
||||||
continue;
|
continue;
|
||||||
fieldObj->type = fieldProperty.type();
|
fieldObj->type = fieldProperty.type();
|
||||||
fieldObj->typeName = QString(fieldProperty.typeName());
|
fieldObj->typeName = QString(fieldProperty.typeName());
|
||||||
// qDebug() <<"fieldProperty.type()"
|
|
||||||
// <<fieldProperty.typeName()
|
|
||||||
// << fieldProperty.type()
|
|
||||||
// << fieldObj->type;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Browse class infos
|
// Browse class infos
|
||||||
|
|
|
||||||
|
|
@ -25,41 +25,43 @@
|
||||||
|
|
||||||
NUT_BEGIN_NAMESPACE
|
NUT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
PhraseData::PhraseData(const char *className, const char *s){
|
PhraseData::PhraseData(const char *className, const char *s)
|
||||||
text = QString(s);// QString(className) + "." + s;
|
{
|
||||||
|
Q_UNUSED(className)
|
||||||
|
text = QString(s); // QString(className) + "." + s;
|
||||||
type = Field;
|
type = Field;
|
||||||
operatorCond = NotAssign;
|
operatorCond = NotAssign;
|
||||||
// qDebug() << "(" << this << ")" << "Data type 0";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o) : left(l){
|
PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o) : left(l)
|
||||||
|
{
|
||||||
operatorCond = o;
|
operatorCond = o;
|
||||||
type = WithoutOperand;
|
type = WithoutOperand;
|
||||||
// qDebug() << "(" << this << ")" << "Data type 1";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o, const PhraseData *r) : left(l), right(r){
|
PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o,
|
||||||
|
const PhraseData *r)
|
||||||
|
: left(l), right(r)
|
||||||
|
{
|
||||||
operatorCond = o;
|
operatorCond = o;
|
||||||
type = WithOther;
|
type = WithOther;
|
||||||
// qDebug() << "(" << this << ")" << "Data type 2";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o, QVariant r) : left(l), operand(r){
|
PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o, QVariant r)
|
||||||
|
: left(l), operand(r)
|
||||||
|
{
|
||||||
operatorCond = o;
|
operatorCond = o;
|
||||||
type = WithVariant;
|
type = WithVariant;
|
||||||
// qDebug() << "(" << this << ")" << "Data type 1";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PhraseData::~PhraseData(){
|
PhraseData::~PhraseData()
|
||||||
// qDebug() << "(" << this << ")" << "Data Deleting..." << type;
|
{
|
||||||
if(type == WithOther){
|
if (type == WithOther) {
|
||||||
// qDebug() << " - Other" << left << right;
|
|
||||||
delete left;
|
delete left;
|
||||||
delete right;
|
delete right;
|
||||||
}
|
}
|
||||||
if(type == WithVariant){
|
if (type == WithVariant) {
|
||||||
// qDebug() << " - Variant" << left;
|
if (left)
|
||||||
if(left)
|
|
||||||
delete left;
|
delete left;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -71,15 +73,12 @@ PhraseData *WherePhrase::data() const
|
||||||
|
|
||||||
WherePhrase::WherePhrase(const char *className, const char *s)
|
WherePhrase::WherePhrase(const char *className, const char *s)
|
||||||
{
|
{
|
||||||
// qDebug() << "(" << this << ")" << "class ctor" << className << s;
|
|
||||||
_data = new PhraseData(className, s);
|
_data = new PhraseData(className, s);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase::WherePhrase(const WherePhrase &l)
|
WherePhrase::WherePhrase(const WherePhrase &l)
|
||||||
{
|
{
|
||||||
_data = l._data;
|
_data = l._data;
|
||||||
// l._data = 0;
|
|
||||||
// qDebug() << "(" << this << ")" << "Copy ctor, from" << _data << (&l);
|
|
||||||
_dataPointer = QSharedPointer<PhraseData>(l._dataPointer);
|
_dataPointer = QSharedPointer<PhraseData>(l._dataPointer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -87,8 +86,6 @@ WherePhrase::WherePhrase(WherePhrase *l)
|
||||||
{
|
{
|
||||||
_data = l->_data;
|
_data = l->_data;
|
||||||
|
|
||||||
// qDebug() << "(" << this << ")" << "From pointer" << _data;
|
|
||||||
// _dataPointer = QSharedPointer<PhraseData>(_data);
|
|
||||||
l->_data = 0;
|
l->_data = 0;
|
||||||
l->_dataPointer.reset(0);
|
l->_dataPointer.reset(0);
|
||||||
}
|
}
|
||||||
|
|
@ -96,21 +93,17 @@ WherePhrase::WherePhrase(WherePhrase *l)
|
||||||
WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o)
|
WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o)
|
||||||
{
|
{
|
||||||
_data = new PhraseData(l->_data, o);
|
_data = new PhraseData(l->_data, o);
|
||||||
// _dataPointer = QSharedPointer<PhraseData>(_data);
|
|
||||||
l->_data = 0;
|
l->_data = 0;
|
||||||
// qDebug() << "(" << this << ")" << "From cond, " << _data << o;
|
|
||||||
l->_dataPointer.reset(0);
|
l->_dataPointer.reset(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o,
|
||||||
WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o, WherePhrase *r)
|
WherePhrase *r)
|
||||||
{
|
{
|
||||||
_data = new PhraseData(l->_data, o, r->_data);
|
_data = new PhraseData(l->_data, o, r->_data);
|
||||||
// _dataPointer = QSharedPointer<PhraseData>(_data);
|
|
||||||
l->_data = 0;
|
l->_data = 0;
|
||||||
r->_data = 0;
|
r->_data = 0;
|
||||||
|
|
||||||
// qDebug() << "(" << this << ")" << "From two pointer" << _data;
|
|
||||||
l->_dataPointer.reset(0);
|
l->_dataPointer.reset(0);
|
||||||
r->_dataPointer.reset(0);
|
r->_dataPointer.reset(0);
|
||||||
}
|
}
|
||||||
|
|
@ -118,133 +111,123 @@ WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o, WherePhrase *r
|
||||||
WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o, QVariant r)
|
WherePhrase::WherePhrase(WherePhrase *l, PhraseData::Condition o, QVariant r)
|
||||||
{
|
{
|
||||||
_data = new PhraseData(l->_data, o, r);
|
_data = new PhraseData(l->_data, o, r);
|
||||||
// _dataPointer = QSharedPointer<PhraseData>(_data);
|
|
||||||
l->_data = 0;
|
l->_data = 0;
|
||||||
|
|
||||||
// qDebug() << "(" << this << ")" << "From variant," << _data << l << r;
|
|
||||||
l->_dataPointer.reset(0);
|
l->_dataPointer.reset(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase::~WherePhrase()
|
WherePhrase::~WherePhrase()
|
||||||
{
|
{
|
||||||
// qDebug() << "(" << this << ")" << "Dtor" << _data << _dataPointer.data();
|
|
||||||
// if(_data){
|
|
||||||
// delete _data;
|
|
||||||
// qDebug() << "deleted";
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator ==(const WherePhrase &other)
|
WherePhrase WherePhrase::operator==(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Equal, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Equal, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator !=(const WherePhrase &other)
|
WherePhrase WherePhrase::operator!=(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::NotEqual, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::NotEqual, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator <(const WherePhrase &other)
|
WherePhrase WherePhrase::operator<(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Less, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Less, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator >(const WherePhrase &other)
|
WherePhrase WherePhrase::operator>(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Greater, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Greater, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator <=(const WherePhrase &other)
|
WherePhrase WherePhrase::operator<=(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::LessEqual, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::LessEqual, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator >=(const WherePhrase &other)
|
WherePhrase WherePhrase::operator>=(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::GreaterEqual, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::GreaterEqual, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WherePhrase WherePhrase::operator!()
|
||||||
WherePhrase WherePhrase::operator !()
|
|
||||||
{
|
{
|
||||||
if(_data->operatorCond < 20)
|
if (_data->operatorCond < 20)
|
||||||
_data->operatorCond = (PhraseData::Condition)((_data->operatorCond + 10) % 20);
|
_data->operatorCond
|
||||||
|
= (PhraseData::Condition)((_data->operatorCond + 10) % 20);
|
||||||
else
|
else
|
||||||
qFatal("Operator ! can not aplied to non condition statements");
|
qFatal("Operator ! can not aplied to non condition statements");
|
||||||
|
|
||||||
return this;//WherePhrase(this, PhraseData::Not);
|
return this; // WherePhrase(this, PhraseData::Not);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator =(const WherePhrase &other)
|
WherePhrase WherePhrase::operator=(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Set, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Set, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator +(const WherePhrase &other)
|
WherePhrase WherePhrase::operator+(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Add, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Add, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator -(const WherePhrase &other)
|
WherePhrase WherePhrase::operator-(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Minus, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Minus, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator *(const WherePhrase &other)
|
WherePhrase WherePhrase::operator*(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Multiple, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Multiple, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator /(const WherePhrase &other)
|
WherePhrase WherePhrase::operator/(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Divide, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Divide, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator &&(const WherePhrase &other)
|
WherePhrase WherePhrase::operator&&(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::And, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::And, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator ||(const WherePhrase &other)
|
WherePhrase WherePhrase::operator||(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Or, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Or, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator &(const WherePhrase &other)
|
WherePhrase WherePhrase::operator&(const WherePhrase &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Append, (WherePhrase*)&other);
|
return WherePhrase(this, PhraseData::Append, (WherePhrase *)&other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator ==(const QVariant &other)
|
WherePhrase WherePhrase::operator==(const QVariant &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Equal, other);
|
return WherePhrase(this, PhraseData::Equal, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator !=(const QVariant &other)
|
WherePhrase WherePhrase::operator!=(const QVariant &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::NotEqual, other);
|
return WherePhrase(this, PhraseData::NotEqual, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator <(const QVariant &other)
|
WherePhrase WherePhrase::operator<(const QVariant &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Less, other);
|
return WherePhrase(this, PhraseData::Less, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator >(const QVariant &other)
|
WherePhrase WherePhrase::operator>(const QVariant &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::Greater, other);
|
return WherePhrase(this, PhraseData::Greater, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator <=(const QVariant &other)
|
WherePhrase WherePhrase::operator<=(const QVariant &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::LessEqual, other);
|
return WherePhrase(this, PhraseData::LessEqual, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
WherePhrase WherePhrase::operator >=(const QVariant &other)
|
WherePhrase WherePhrase::operator>=(const QVariant &other)
|
||||||
{
|
{
|
||||||
return WherePhrase(this, PhraseData::GreaterEqual, other);
|
return WherePhrase(this, PhraseData::GreaterEqual, other);
|
||||||
}
|
}
|
||||||
|
|
||||||
NUT_END_NAMESPACE
|
NUT_END_NAMESPACE
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue