kDB: Knowledge DataBase
Loading...
Searching...
No Matches
AbstractQuery.h
1#ifndef _KDBQUICK_ABSTRACTQUERY_H_
2#define _KDBQUICK_ABSTRACTQUERY_H_
3
4#include <QObject>
5
6class QAbstractItemModel;
7
8namespace kDBQuick
9{
10 class Connection;
11 class AbstractQuery : public QObject
12 {
13 Q_OBJECT
14 Q_PROPERTY(kDBQuick::Connection* connection READ connection WRITE setConnection NOTIFY connectionChanged);
15 Q_PROPERTY(QString query READ query WRITE setQuery NOTIFY queryChanged);
16 Q_PROPERTY(QAbstractItemModel* result READ result CONSTANT);
17 Q_PROPERTY(bool autoExecute READ isAutoExecute WRITE setAutoExecute NOTIFY autoExecuteChanged);
18 Q_PROPERTY(QString lastError READ lastError NOTIFY lastErrorChanged);
19 Q_PROPERTY(QVariant bindings READ bindings WRITE setBindings NOTIFY bindingsChanged);
20 protected:
21 struct Private;
22 Private* const d;
23 public:
24 AbstractQuery(Private* _d, QObject* _parent = nullptr);
26 Q_INVOKABLE virtual void execute() = 0;
27 Connection* connection() const;
28 void setConnection(Connection* _connection);
29 QVariant bindings() const;
30 void setBindings(const QVariant& _bindings);
31 QString query();
32 void setQuery(const QString& _query);
33 QAbstractItemModel* result() const;
34 bool isAutoExecute() const;
35 void setAutoExecute(bool _exec);
36 QString lastError() const;
37 protected:
38 void executeIfNeeded();
39 signals:
44 void connectionChanged();
45 void queryChanged();
46 void autoExecuteChanged();
47 void lastErrorChanged();
48 void bindingsChanged();
49 };
50}
51
52#endif
53
Definition AbstractQuery.h:12
Definition Connection.h:12
Definition AbstractQuery_p.h:9