QEloquent 1.1.0
Qt most flexible ORM.
Loading...
Searching...
No Matches
model_p.h
1#ifndef QLOQUENT_ORM_MODEL_P_H
2#define QLOQUENT_ORM_MODEL_P_H
3
4#include "model.h"
5
6#include <QEloquent/datamap.h>
7#include <QEloquent/query.h>
8#include <QEloquent/error.h>
9#include <QEloquent/metaobject.h>
10#include <QEloquent/queryrunner.h>
11#include <QEloquent/connection.h>
12
13#include <QVariant>
14#include <QMetaProperty>
15#include <QSqlQuery>
16
17namespace QEloquent {
18
19class ModelData : public QSharedData
20{
21public:
22 DataMap dynamicProperties;
23 QMap<QString, QExplicitlySharedDataPointer<RelationData>> relationData;
24 MetaObject metaObject;
25
26 Query lastQuery;
27 Error lastError;
28
29 Result<::QSqlQuery, ::QSqlError> exec(const QString &statement, Query query, Model *model)
30 {
31 query
32 .raw(statement)
33 .table(metaObject.tableName())
34 .connection(metaObject.connectionName());
35
36 auto result = QueryRunner::exec(statement, query.connection());
37 lastQuery = query.raw(statement);
38 if (!result)
39 lastError = Error::fromSqlError(result.error());
40 return result;
41 }
42};
43
44} // namespace QELoquent
45
46#endif // QLOQUENT_ORM_MODEL_P_H
static Error fromSqlError(const QSqlError &error)
Creates an Error object from a QSqlError.
Definition error.cpp:128