9#include "qx/sql/qx-sqlstring.h"
10#include "qx/sql/__private/qx-sqlstring_helpers.h"
51 inline explicit Inline() {}
52 inline explicit Inline(
const QString& s) : mStr(s) {}
58 return (
static_cast<unsigned>(set) &
static_cast<unsigned>(flag)) != 0;
67template<Qx::CStringLiteral word, Inline::Constructor Cs>
78 Inline(word.view() + u
" "_s + s.toString())
81 template<Qx::sql_
stringable First>
84 _QxPrivate::appendKeyword(mStr, word.view(), std::forward<First>(first));
90 _QxPrivate::appendKeyword(mStr, word.view(), std::forward<First>(first), std::forward<Rest>(rest)...);
100 _QxPrivate::appendKeywordParen(mStr, word.view(), std::forward<First>(first), std::forward<Rest>(rest)...);
103 template <std::ranges::input_range R>
107 _QxPrivate::appendKeywordParen(mStr, word.view(), range);
111 Inline(word.view() + u
" ("_s + q.string() + u
")"_s)
The ConcreteInline class is used to implement each specific inline keyword.
Definition qx-sqlinlines.h:69
ConcreteInline(const Qx::SqlQuery &q)
Definition qx-sqlinlines.h:110
ConcreteInline()
Definition qx-sqlinlines.h:73
ConcreteInline(const Qx::SqlString &s)
Definition qx-sqlinlines.h:77
ConcreteInline(First &&first, Rest &&... rest)
Definition qx-sqlinlines.h:98
ConcreteInline(First &&first)
Definition qx-sqlinlines.h:82
ConcreteInline(First &&first, Rest &&... rest)
Definition qx-sqlinlines.h:88
ConcreteInline(const R &range)
Definition qx-sqlinlines.h:105
The Inline class is the base class from which all SQL inline keywords derive from.
Definition qx-sqlinlines.h:19
Constructor
Definition qx-sqlinlines.h:26
@ MultiStringableParen
Definition qx-sqlinlines.h:32
@ SingleStringable
Definition qx-sqlinlines.h:30
@ Default
Definition qx-sqlinlines.h:28
@ SingleString
Definition qx-sqlinlines.h:29
@ MultiStringable
Definition qx-sqlinlines.h:31
@ Query
Definition qx-sqlinlines.h:34
@ None
Definition qx-sqlinlines.h:27
@ StringableRangeParen
Definition qx-sqlinlines.h:33
SqlQuery is a base class from which all query types derive.
Definition qx-sqlquery.h:171
The SqlString class is a convenience class for more easily building SQL statements in a natural manne...
Definition qx-sqlstring.h:36
Specifies that a type can be converted to SqlString, or used to construct a SqlString.
Definition qx-sqlstring.h:33
The QxSql namespace contains several utilities that are specific to the SQL module and grouped togeth...
Definition qx-sqlconcepts.dox:10
ConcreteInline<"COUNT", Inline::Constructor( Inline::Constructor::SingleStringable)> COUNT
Definition qx-sqlinlines.h:148
ConcreteInline<"AS", Inline::Constructor( Inline::Constructor::Default| Inline::Constructor::SingleString)> AS
Definition qx-sqlinlines.h:135
ConcreteInline<"SUM", Inline::Constructor( Inline::Constructor::SingleStringable)> SUM
Definition qx-sqlinlines.h:152
ConcreteInline<"ANY", Inline::Constructor( Inline::Constructor::MultiStringable| Inline::Constructor::Query)> ANY
Definition qx-sqlinlines.h:120
ConcreteInline<"MIN", Inline::Constructor( Inline::Constructor::SingleStringable)> MIN
Definition qx-sqlinlines.h:156
ConcreteInline<"LIKE", Inline::Constructor( Inline::Constructor::Default| Inline::Constructor::SingleString)> LIKE
Definition qx-sqlinlines.h:180
ConcreteInline<"UNKNOWN", Inline::Constructor( Inline::Constructor::Default)> UNKNOWN
Definition qx-sqlinlines.h:144
ConcreteInline<"SOME", Inline::Constructor( Inline::Constructor::MultiStringable| Inline::Constructor::Query)> SOME
Definition qx-sqlinlines.h:125
Qx::SqlString operator|=(const Inline &a, const Inline &b)
Definition qx-sqlinlines.h:208
ConcreteInline<"ALL", Inline::Constructor( Inline::Constructor::MultiStringable| Inline::Constructor::Query)> ALL
Definition qx-sqlinlines.h:130
Qx::SqlString operator!(const Inline &i)
Definition qx-sqlinlines.h:204
ConcreteInline<"DESC", Inline::Constructor( Inline::Constructor::Default)> DESC
Definition qx-sqlinlines.h:176
ConcreteInline<"NUL", Inline::Constructor( Inline::Constructor::Default)> NUL
Definition qx-sqlinlines.h:140
ConcreteInline<"AVG", Inline::Constructor( Inline::Constructor::SingleStringable)> AVG
Definition qx-sqlinlines.h:164
ConcreteInline<"ESCAPE", Inline::Constructor( Inline::Constructor::Default| Inline::Constructor::SingleString)> ESCAPE
Definition qx-sqlinlines.h:190
Qx::SqlString operator&=(const Inline &a, const Inline &b)
Definition qx-sqlinlines.h:210
ConcreteInline<"MAX", Inline::Constructor( Inline::Constructor::SingleStringable)> MAX
Definition qx-sqlinlines.h:160
ConcreteInline<"DEFAULT", Inline::Constructor( Inline::Constructor::Default)> DEFAULT
Definition qx-sqlinlines.h:168
ConcreteInline<"IN", Inline::Constructor( Inline::Constructor::MultiStringableParen| Inline::Constructor::StringableRangeParen| Inline::Constructor::Query)> IN
Definition qx-sqlinlines.h:195
ConcreteInline<"ILIKE", Inline::Constructor( Inline::Constructor::Default| Inline::Constructor::SingleString)> ILIKE
Definition qx-sqlinlines.h:185
ConcreteInline<"ASC", Inline::Constructor( Inline::Constructor::Default)> ASC
Definition qx-sqlinlines.h:172
The qx-sql header file offers a straightforward interface for querying an SQL database.
The qx-typetraits header file provides a library of general purpose type-traits as an extension of th...