5#include "qx/sql/qx_sql_export.h"
10using namespace Qt::StringLiterals;
22inline Qx::SqlString
operator""_sq(
const char16_t* str,
size_t size)
noexcept;
23inline Qx::SqlString
operator""_sqi(
const char16_t* str,
size_t size)
noexcept;
24inline Qx::SqlString
operator""_sqs(
const char16_t* str,
size_t size)
noexcept;
33concept sql_stringable = std::convertible_to<T, SqlString> || std::constructible_from<SqlString, T>;
35class QX_SQL_EXPORT SqlString
37 friend SqlString QxSql::operator
""_sq(
const char16_t* str,
size_t size)
noexcept;
38 friend SqlString QxSql::operator
""_sqi(
const char16_t* str,
size_t size)
noexcept;
39 friend SqlString QxSql::operator
""_sqs(
const char16_t* str,
size_t size)
noexcept;
40 friend SqlString operator!(
const SqlString& s);
41 friend SqlString operator&&(
const SqlString& lhs,
const SqlString& rhs);
42 friend SqlString operator||(
const SqlString& lhs,
const SqlString& rhs);
43 friend SqlString operator==(
const SqlString& lhs,
const SqlString& rhs);
44 friend SqlString operator!=(
const SqlString& lhs,
const SqlString& rhs);
45 friend SqlString operator<(
const SqlString& lhs,
const SqlString& rhs);
46 friend SqlString operator<=(
const SqlString& lhs,
const SqlString& rhs);
47 friend SqlString operator>(
const SqlString& lhs,
const SqlString& rhs);
48 friend SqlString operator>=(
const SqlString& lhs,
const SqlString& rhs);
49 friend SqlString operator==(
const SqlString& a,
const SqlQuery& b);
50 friend SqlString operator!=(
const SqlString& a,
const SqlQuery& b);
51 friend SqlString operator<(
const SqlString& a,
const SqlQuery& b);
52 friend SqlString operator<=(
const SqlString& a,
const SqlQuery& b);
53 friend SqlString operator>(
const SqlString& a,
const SqlQuery& b);
54 friend SqlString operator>=(
const SqlString& a,
const SqlQuery& b);
55 friend SqlString operator|=(
const SqlString& a,
const SqlString& b);
56 friend SqlString operator&=(
const SqlString& a,
const SqlString& b);
60 enum Type { Default, Identifier, Literal };
68 explicit SqlString(
const char16_t* str,
size_t size, Type type = Default);
72 explicit SqlString(QString&& str);
73 explicit SqlString(
const QString& str);
76 SqlString(
const QUuid&
id);
78 template<Qx::arithmetic N>
89 static SqlString makeRegular(
const char16_t* str)
noexcept;
90 static SqlString makeIdentifier(
const char16_t* str)
noexcept;
91 static SqlString makeLiteral(
const char16_t* str)
noexcept;
95 QString toString()
const;
100 SqlString&
operator+=(
const SqlString& s) { mStr += s.mStr;
return *
this; }
116SqlString
operator==(
const SqlString& s,
const SqlQuery& q);
117SqlString
operator!=(
const SqlString& s,
const SqlQuery& q);
118SqlString
operator<(
const SqlString& s,
const SqlQuery& q);
119SqlString
operator<=(
const SqlString& s,
const SqlQuery& q);
120SqlString
operator>(
const SqlString& s,
const SqlQuery& q);
121SqlString
operator>=(
const SqlString& s,
const SqlQuery& q);
136inline Qx::SqlString operator""_sqi(
const char16_t* str,
size_t size)
noexcept {
return Qx::SqlString(str, size, Qx::SqlString::Identifier); }
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
SqlString & operator+=(const SqlString &s)
Definition qx-sqlstring.h:100
SqlString(N n)
Definition qx-sqlstring.h:79
Specifies that a type is the same as SqlString.
Definition qx-sqlstring.h:30
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
Qx::SqlString sqs(const QString &s) noexcept
Definition qx-sqlstring.h:141
Qx::SqlString sq(const QString &s) noexcept
Definition qx-sqlstring.h:139
Qx::SqlString sqi(const QString &s) noexcept
Definition qx-sqlstring.h:140
The Qx namespace is the main namespace through which all non-global functionality of the Qx library i...
Definition qx-abstracterror.cpp:13
SqlString operator&&(const SqlString &a, const SqlString &b)
Definition qx-sqlstring.h:106
SqlString operator<=(const SqlString &s, const Qx::SqlQuery &q)
Definition qx-sqlstring.cpp:214
SqlString operator!(const SqlString &s)
Definition qx-sqlstring.h:105
SqlString operator<(const SqlString &s, const Qx::SqlQuery &q)
Definition qx-sqlstring.cpp:209
SqlString operator>=(const SqlString &s, const Qx::SqlQuery &q)
Definition qx-sqlstring.cpp:224
SqlString operator&=(const SqlString &a, const SqlString &b)
Definition qx-sqlstring.h:128
SqlString operator!=(const SqlString &s, const Qx::SqlQuery &q)
Definition qx-sqlstring.cpp:204
SqlString operator|=(const SqlString &a, const SqlString &b)
Definition qx-sqlstring.h:126
SqlString operator||(const SqlString &a, const SqlString &b)
Definition qx-sqlstring.h:107
SqlString operator>(const SqlString &s, const Qx::SqlQuery &q)
Definition qx-sqlstring.cpp:219
SqlString operator==(const SqlString &s, const Qx::SqlQuery &q)
Definition qx-sqlstring.cpp:199
The qx-concepts header file provides a library of general purpose concepts as an extension of the sta...