knowL: Knowledge Libraries
Loading...
Searching...
No Matches
Query.h
1#pragma once
2
3#include <knowDBC/Forward.h>
4
5#include <QExplicitlySharedDataPointer>
6
7#include <knowCore/Value.h>
8
9namespace knowDBC
10{
11 class Query
12 {
13 public:
15 {
16 static QString InlineArguments; //< Set to true to inline the argument of the Query
17 static QString MultiQueries; //< set this option if executing multiple query (does not work
18 // with SELECT and might inline the arguments)
19 };
20 public:
21 Query();
23 Query(const Query& _sqlQuery);
24 Query& operator=(const Query& _sqlQuery);
25 ~Query();
26 public:
27 QString query() const;
28 void setQuery(const QString& _text, bool _keepBindings = false);
29
33 cres_qresult<void> loadFromFile(const knowCore::Uri& _source);
37 cres_qresult<void> loadFromFile(const QString& _filename);
38
39 void clearOptions();
40 knowCore::Value option(const QString& _key);
41 void unsetOption(const QString& _key);
42 void setOption(const QString& _key, const knowCore::Value& _value);
43 template<typename _T_>
44 void setOption(const QString& _key, const _T_& _value)
45 {
46 setOption(_key, knowCore::Value::fromValue(_value));
47 }
48 void setOptions(const knowCore::ValueHash& _values);
49
50 void bindValue(const QString& _name, const knowCore::Value& _variant);
51 void bindValue(const QString& _name, const char* _literal)
52 {
53 bindValue(_name, knowCore::Value::fromValue(QString::fromUtf8(_literal)));
54 }
55 template<typename _T_>
56 void bindValue(const QString& _name, const _T_& _value)
57 {
58 bindValue(_name, knowCore::Value::fromValue<_T_>(_value));
59 }
60 void bindValues(const knowCore::ValueHash& _values);
61 void bindValues(const QMap<QString, knowCore::Value>& _values);
62 template<typename _T_, typename... _TOther_>
63 void bindValues(const QString& _name, const _T_& _value, _TOther_... _other)
64 {
65 bindValue(_name, _value);
66 bindValues(_other...);
67 }
68 void clearBindings();
69 knowDBC::Result execute();
70 private:
71 void bindValues() {}
72 struct Private;
73 QExplicitlySharedDataPointer<Private> d;
74 };
75
76} // namespace knowDBC
Definition Forward.h:12
Definition Uri.h:15
Definition ValueHash.h:13
Definition Value.h:21
static Value fromValue(const _T_ &_value)
Definition Value.h:241
Definition QueryExecutor.h:8
Definition Query.h:12
cres_qresult< void > loadFromFile(const knowCore::Uri &_source)
Definition Query.cpp:66
Definition Result.h:23
Definition Query.h:15