32#ifndef _IX_SQL_ELEMENT_H_
33#define _IX_SQL_ELEMENT_H_
46#ifdef _QX_ENABLE_BOOST_SERIALIZATION
47#include <boost/serialization/serialization.hpp>
48#include <boost/serialization/split_free.hpp>
49#include <boost/serialization/nvp.hpp>
52#include <QtCore/qdatastream.h>
55#include <QtCore/qjsonvalue.h>
58#include <QtSql/qsqlquery.h>
85template <>
struct QxConvert_ToJson<
qx::dao::detail::IxSqlElement >;
86template <> struct QxConvert_FromJson< qx::dao::detail::IxSqlElement >;
146#ifdef _QX_ENABLE_BOOST_SERIALIZATION
147 template <
class Archive>
151 ar << boost::serialization::make_nvp(
"index",
m_iIndex);
152 ar << boost::serialization::make_nvp(
"list_columns",
m_lstColumns);
153 ar << boost::serialization::make_nvp(
"list_keys",
m_lstKeys);
154 ar << boost::serialization::make_nvp(
"list_values",
m_lstValues);
155 ar << boost::serialization::make_nvp(
"extra_settings", sExtraSettings);
159#ifdef _QX_ENABLE_BOOST_SERIALIZATION
160 template <
class Archive>
163 QString sExtraSettings;
164 ar >> boost::serialization::make_nvp(
"index",
m_iIndex);
165 ar >> boost::serialization::make_nvp(
"list_columns",
m_lstColumns);
166 ar >> boost::serialization::make_nvp(
"list_keys",
m_lstKeys);
167 ar >> boost::serialization::make_nvp(
"list_values",
m_lstValues);
168 ar >> boost::serialization::make_nvp(
"extra_settings", sExtraSettings);
QX_DLL_EXPORT QDataStream & operator>>(QDataStream &stream, qx::dao::detail::IxSqlElement &t) QX_USED
QX_DLL_EXPORT QDataStream & operator<<(QDataStream &stream, const qx::dao::detail::IxSqlElement &t) QX_USED
Common interface for all SQL generators to build SQL query specific for each database.
QxOrm thread-safe container (keep insertion order + quick access by index + quick access by key)
qx::cvt : namespace to provide global functions to convert any kind of objects to/from QString and QV...
qx::QxCollection<Key, Value> : QxOrm thread-safe container (keep insertion order + quick access by in...
qx::dao::detail::IxSqlElement : common interface for all SQL elements to build SQL query
void setColumns(const QStringList &columns)
void setValue(const QVariant &val)
void setColumn(const QString &column)
void qxSave(Archive &ar) const
virtual void resolve(QSqlQuery &query, qx::QxCollection< QString, QVariantList > *pLstExecBatch=NULL) const =0
QStringList m_lstColumns
List of columns associated to SQL element.
virtual void clone(IxSqlElement *other)
int m_iIndex
Index of SQL element to build unique string.
QStringList m_lstKeys
List of keys associated to SQL element.
void setValues(const QVariantList &values)
IxSqlGenerator * m_pSqlGenerator
SQL generator to build SQL query specific for each database.
virtual void postProcess(QString &sql) const =0
virtual QString getExtraSettings() const =0
virtual IxSqlElement::type_class getTypeClass() const =0
virtual QString toString() const =0
QList< QVariant > m_lstValues
List of values associated to SQL element.
virtual void setExtraSettings(const QString &s)=0
qx::dao::detail::IxSqlGenerator : common interface for all SQL generators to build SQL query specific...
Internal helper tools for qx::cvt namespace.
QX_DLL_EXPORT QJsonValue QxConvert_ToJson_Helper(const qx::dao::detail::IxSqlElement &t, const QString &format) QX_USED
QX_DLL_EXPORT qx_bool QxConvert_FromJson_Helper(const QJsonValue &j, qx::dao::detail::IxSqlElement &t, const QString &format) QX_USED
Internal helper tools for qx::dao namespace.
std::shared_ptr< IxSqlElement > IxSqlElement_ptr
QX_DLL_EXPORT IxSqlElement_ptr create_sql_element(IxSqlElement::type_class e) QX_USED
Database communication used by persistence engine (ORM - Object Relational Mapping)
Root namespace for all QxOrm library features.