32#ifndef _QX_SQL_QUERY_BUILDER_H_
33#define _QX_SQL_QUERY_BUILDER_H_
55#define QX_SQL_ERR_NO_DATA_MEMBER_REGISTERED "'QxSqlQueryBuilder<T>' error : 'qx::register_class()' not called or no data member registered"
56#define QX_SQL_ERR_NO_ID_REGISTERED "'QxSqlQueryBuilder<T>' error : no id registered"
58#define QX_SQL_BUILDER_INIT_FCT(oper) \
59qx::dao::detail::IxDao_Timer timer(this->getDaoHelper(), qx::dao::detail::IxDao_Helper::timer_build_sql); \
60QString joinQueryHash = (this->getDaoHelper() ? this->getDaoHelper()->qxQuery().getJoinQueryHash() : QString()); \
61QString ignoreSoftDeleteHash = (this->getDaoHelper() ? this->getDaoHelper()->getIgnoreSoftDeleteHash() : QString()); \
62QString key = QxClass<type_sql>::getSingleton()->getKey() + joinQueryHash + ignoreSoftDeleteHash + oper; \
63if ((joinQueryHash.isEmpty()) && (this->findSqlQuery(key))) { return (* this); } \
64QString & sql = this->getCurrentBuildingSql(); sql = "";
66#define QX_SQL_BUILDER_INIT_FCT_WITH_RELATION(oper) \
67qx::dao::detail::IxDao_Timer timer(this->getDaoHelper(), qx::dao::detail::IxDao_Helper::timer_build_sql); \
68QString joinQueryHash = (this->getDaoHelper() ? this->getDaoHelper()->qxQuery().getJoinQueryHash() : QString()); \
69QString ignoreSoftDeleteHash = (this->getDaoHelper() ? this->getDaoHelper()->getIgnoreSoftDeleteHash() : QString()); \
70QString key = QxClass<type_sql>::getSingleton()->getKey() + joinQueryHash + this->getHashRelation() + ignoreSoftDeleteHash + oper; \
71if ((joinQueryHash.isEmpty()) && (this->findSqlQuery(key))) { this->findSqlAlias(key); return (* this); } \
72QString & sql = this->getCurrentBuildingSql(); sql = "";
125 Q_UNUSED(columns); Q_UNUSED(pRelationX);
152 Q_UNUSED(columns); Q_UNUSED(pRelationX);
179 Q_UNUSED(pRelationX);
181 if ((columns.count() <= 0) || (columns.at(0) ==
"*"))
217 Q_UNUSED(pRelationX);
221 if ((columns.count() <= 0) || (columns.at(0) ==
"*"))
257 Q_UNUSED(columns); Q_UNUSED(pRelationX);
283 Q_UNUSED(pRelationX);
286 if ((columns.count() <= 0) || (columns.at(0) ==
"*"))
322 Q_UNUSED(columns); Q_UNUSED(pRelationX);
324 sql =
"DELETE FROM " + this->
table();
348 Q_UNUSED(columns); Q_UNUSED(pRelationX);
375 Q_UNUSED(columns); Q_UNUSED(pRelationX);
402 Q_UNUSED(columns); Q_UNUSED(pRelationX);
430 Q_UNUSED(columns); Q_UNUSED(pRelationX);
Common interface to build SQL queries to communicate with database.
Concrete class registered into QxOrm context.
#define QX_SQL_BUILDER_INIT_FCT(oper)
#define QX_SQL_BUILDER_INIT_FCT_WITH_RELATION(oper)
#define QX_SQL_ERR_NO_ID_REGISTERED
static QString getSqlFromTable(const QString &sTable, const QString &sCustomAlias=QString())
qx::IxSqlQueryBuilder : common interface to build SQL queries to communicate with database
void insertSqlAlias(const QString &key)
QxSoftDelete & softDelete()
static void sql_Count_WithRelation(qx::QxSqlRelationLinked *pRelationX, QString &sql, IxSqlQueryBuilder &builder)
QxSoftDelete getSoftDelete() const
IxDataMember * getDataId() const
void setDataMemberX(IxDataMemberX *p)
virtual void clone(const IxSqlQueryBuilder &other)
void setSoftDelete(const QxSoftDelete &o)
void setSqlQuery(const QString &sql, const QString &key=QString())
bool verifyColumns(const QStringList &columns) const QX_USED
qx::QxClass<T> : concrete class of type T registered into QxOrm context (this class is a singleton an...
QString buildSqlQueryToFetch(const QString &sTable=QString()) const
QString buildSqlQueryToUpdate() const
qx::QxSqlQueryBuilder_Count_WithRelation<T> : concrete SQL query builder for class T to build a COUNT...
QxSqlQueryBuilder_Count_WithRelation()
virtual ~QxSqlQueryBuilder_Count_WithRelation()
QxSqlQueryBuilder< T >::type_sql type_sql
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
qx::QxSqlQueryBuilder_Count<T> : concrete SQL query builder for class T to build a COUNT SQL query
QxSqlQueryBuilder_Count()
QxSqlQueryBuilder< T >::type_sql type_sql
virtual ~QxSqlQueryBuilder_Count()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
qx::QxSqlQueryBuilder_CreateTable<T> : concrete SQL query builder for class T to build a CREATE TABLE...
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
virtual ~QxSqlQueryBuilder_CreateTable()
QxSqlQueryBuilder< T >::type_sql type_sql
QxSqlQueryBuilder_CreateTable()
qx::QxSqlQueryBuilder_DeleteAll<T> : concrete SQL query builder for class T to build a DELETE ALL SQL...
QxSqlQueryBuilder_DeleteAll()
QxSqlQueryBuilder< T >::type_sql type_sql
virtual ~QxSqlQueryBuilder_DeleteAll()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
qx::QxSqlQueryBuilder_DeleteById<T> : concrete SQL query builder for class T to build a DELETE BY ID ...
QxSqlQueryBuilder< T >::type_sql type_sql
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
virtual ~QxSqlQueryBuilder_DeleteById()
QxSqlQueryBuilder_DeleteById()
qx::QxSqlQueryBuilder_Exist<T> : concrete SQL query builder for class T to build an EXIST SQL query
virtual ~QxSqlQueryBuilder_Exist()
QxSqlQueryBuilder< T >::type_sql type_sql
QxSqlQueryBuilder_Exist()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
qx::QxSqlQueryBuilder_FetchAll_WithRelation<T> : concrete SQL query builder for class T to build a FE...
QxSqlQueryBuilder_FetchAll_WithRelation()
virtual ~QxSqlQueryBuilder_FetchAll_WithRelation()
QxSqlQueryBuilder< T >::type_sql type_sql
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
qx::QxSqlQueryBuilder_FetchAll<T> : concrete SQL query builder for class T to build a FETCH ALL SQL q...
virtual ~QxSqlQueryBuilder_FetchAll()
QxSqlQueryBuilder< T >::type_sql type_sql
QxSqlQueryBuilder_FetchAll()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
qx::QxSqlQueryBuilder_FetchById_WithRelation<T> : concrete SQL query builder for class T to build a F...
virtual ~QxSqlQueryBuilder_FetchById_WithRelation()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
QxSqlQueryBuilder< T >::type_sql type_sql
QxSqlQueryBuilder_FetchById_WithRelation()
qx::QxSqlQueryBuilder_FetchById<T> : concrete SQL query builder for class T to build a FETCH BY ID SQ...
QxSqlQueryBuilder< T >::type_sql type_sql
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
QxSqlQueryBuilder_FetchById()
virtual ~QxSqlQueryBuilder_FetchById()
qx::QxSqlQueryBuilder_Insert<T> : concrete SQL query builder for class T to build an INSERT SQL query
QxSqlQueryBuilder_Insert()
virtual ~QxSqlQueryBuilder_Insert()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
QxSqlQueryBuilder< T >::type_sql type_sql
qx::QxSqlQueryBuilder_SoftDeleteAll<T> : concrete SQL query builder for class T to build a SOFT DELET...
QxSqlQueryBuilder< T >::type_sql type_sql
QxSqlQueryBuilder_SoftDeleteAll()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
virtual ~QxSqlQueryBuilder_SoftDeleteAll()
qx::QxSqlQueryBuilder_SoftDeleteById<T> : concrete SQL query builder for class T to build a SOFT DELE...
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
QxSqlQueryBuilder< T >::type_sql type_sql
virtual ~QxSqlQueryBuilder_SoftDeleteById()
QxSqlQueryBuilder_SoftDeleteById()
qx::QxSqlQueryBuilder_Update<T> : concrete SQL query builder for class T to build an UPDATE SQL query
QxSqlQueryBuilder_Update()
virtual IxSqlQueryBuilder & buildSql(const QStringList &columns=QStringList(), QxSqlRelationLinked *pRelationX=NULL)
virtual ~QxSqlQueryBuilder_Update()
QxSqlQueryBuilder< T >::type_sql type_sql
qx::QxSqlQueryBuilder<T> : concrete SQL query builder for class T with a cache mechanism to backup an...
qx::trait::remove_smart_ptr< type_sql_tmp_1 >::type type_sql_tmp_2
qx::trait::remove_attr< T >::type type_sql_tmp_1
qx::QxSqlQueryBuilder< T >::type_sql_tmp_2 type_sql
virtual ~QxSqlQueryBuilder()
qx::QxSqlRelationLinked : hierarchy of relationships to build SQL query
qx::trait::is_qx_registered<T>::value : return true if T is registered into QxOrm context to provide ...
Root namespace for all QxOrm library features.
qx::trait::remove_attr<T>::type : return a type without pointer, const, reference and/or volatile att...
qx::trait::remove_smart_ptr<T>::type : return a type without smart-pointer attribute from boost,...
qx::trait::is_qx_registered<T>::value : return true if T is registered into QxOrm context to provide ...