Revision 2316d17f
Von Christian Ehringfeld vor fast 10 Jahren hinzugefügt
| src/query.cpp | ||
|---|---|---|
|     return qb->like(conditions, conjunction, jp, wildcard);
 | ||
| }
 | ||
|  | ||
| QVariant Query::convertParam(const QVariant val) {
 | ||
|     auto typeName = QString(val.typeName());
 | ||
|     QVariant r = val;
 | ||
|     if(typeName.contains("QSharedPointer")) {
 | ||
|         if(typeName.contains("QList")) {
 | ||
|             auto entities = EntityInstanceFactory::castQVariantList(r);
 | ||
|             QList<QVariant> ids;
 | ||
|             for (int i = 0; i < entities.size(); ++i) {
 | ||
|                 if(entities.at(i)) {
 | ||
|                     ids.append(entities.at(i)->getProperty(entities.at(i)->getPrimaryKey()));
 | ||
|                 }
 | ||
|             }
 | ||
|             r.setValue<QList<QVariant>>(ids);
 | ||
|         } else {
 | ||
|             auto entity = EntityInstanceFactory::castQVariant(r);
 | ||
|             if(entity && entity->getId() != -1) {
 | ||
|                 r = entity->getProperty(entity->getPrimaryKey());
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
|     return r;
 | ||
| }
 | ||
|  | ||
| QString Query::getSelectOption() const {
 | ||
|     return selectOption;
 | ||
| }
 | ||
| ... | ... | |
| }
 | ||
|  | ||
| void Query::appendParam(const QString &column, QVariant value) {
 | ||
|     this->params.insert(column, this->convertParam(value));
 | ||
|     this->params.insert(column, value);
 | ||
| }
 | ||
|  | ||
| void Query::appendParams(const QHash<QString, QVariant> ¶ms) {
 | ||
|     for (auto i = params.constBegin(); i != params.constEnd(); ++i) {
 | ||
|         this->params.insert(i.key(), this->convertParam(i.value()));
 | ||
|         this->params.insert(i.key(), i.value());
 | ||
|     }
 | ||
| }
 | ||
|  | ||
Auch abrufbar als: Unified diff
querybuilder params get own notations