32#ifndef _QX_SQL_RELATION_ONE_TO_ONE_H_
33#define _QX_SQL_RELATION_ONE_TO_ONE_H_
54template <
class DataType,
class Owner>
91 if (this->
isNullData(params)) {
return QSqlError(); }
113 if (! this->
verifyOffset(params,
true)) {
return NULL; }
114 QSqlQuery & query = params.
query();
116 long lIndex = 0;
long lOffsetId = ((pId && (! params.
isDistinct())) ? pId->
getNameCount() : 0);
bool bValidId(
false);
124 if (! bValidId) {
return NULL; }
136 long lOffsetRelation = (lOffsetOld + lOffsetId);
long lCurrIndex = 0;
137 while ((p = this->
nextData(lIndex)))
142 long lOffsetCurrent = (lCurrIndex + lOffsetRelation);
145 void * pOwnerOld = params.
owner(); params.
setOwner(& currData);
Base class for all relationships defined between 2 classes (or between 2 tables in database)
qx::IxDataMember : common interface for all class properties registered into QxOrm context
virtual qx_bool fromVariant(void *pOwner, const QVariant &v, const QString &sFormat, int iIndexName=-1, qx::cvt::context::ctx_type ctx=qx::cvt::context::e_no_context)=0
qx::IxSqlRelation : common interface for all relationships defined between 2 classes (or between 2 ta...
bool addLazyRelation(QxSqlRelationParams ¶ms, IxSqlRelation *pRelation) const
void eagerJoin_OneToOne(QxSqlRelationParams ¶ms) const
void eagerWhereSoftDelete_OneToOne(QxSqlRelationParams ¶ms) const
void eagerSelect_OneToOne(QxSqlRelationParams ¶ms) const
IxDataMember * getDataId() const
virtual void lazyFetch_ResolveOutput(QxSqlRelationParams ¶ms) const =0
void updateOffset_OneToOne(bool bEager, QxSqlRelationParams ¶ms) const
bool verifyOffset(QxSqlRelationParams ¶ms, bool bId) const QX_USED
IxDataMember * nextData(long &lIndex) const
IxSqlRelation * nextRelation(long &lIndex) const
QVariant getIdFromQuery_OneToOne(bool bEager, QxSqlRelationParams ¶ms, int iOffset, int iNameIndex) const
void setRelationType(relation_type e)
qx::QxSqlRelation_OneToOne<DataType, Owner> : manage a relationship one-to-one defined between 2 clas...
virtual void lazySelect(QxSqlRelationParams ¶ms) const
virtual QSqlError onBeforeSave(QxSqlRelationParams ¶ms) const
virtual void lazyWhere(QxSqlRelationParams ¶ms) const
virtual bool getCartesianProduct() const
virtual void eagerSelect(QxSqlRelationParams ¶ms) const
virtual QSqlError onAfterSave(QxSqlRelationParams ¶ms) const
virtual QString createExtraTable() const
virtual QString getDescription() const
virtual void lazyUpdate(QxSqlRelationParams ¶ms) const
virtual void lazyUpdate_ResolveInput(QxSqlRelationParams ¶ms) const
virtual void * eagerFetch_ResolveOutput(QxSqlRelationParams ¶ms) const
QxSqlRelation< DataType, Owner >::type_data type_data
virtual void lazyInsert(QxSqlRelationParams ¶ms) const
virtual ~QxSqlRelation_OneToOne()
QxSqlRelation< DataType, Owner >::type_owner type_owner
virtual void eagerWhere(QxSqlRelationParams ¶ms) const
virtual void updateOffset(bool bEager, QxSqlRelationParams ¶ms) const
virtual void lazyInsert_Values(QxSqlRelationParams ¶ms) const
virtual void lazyFetch_ResolveInput(QxSqlRelationParams ¶ms) const
virtual void createTable(QxSqlRelationParams ¶ms) const
virtual void eagerFetch_ResolveInput(QxSqlRelationParams ¶ms) const
virtual void lazyFrom(QxSqlRelationParams ¶ms) const
virtual void lazyFetch_ResolveOutput(QxSqlRelationParams ¶ms) const
virtual void eagerWhereSoftDelete(QxSqlRelationParams ¶ms) const
virtual void lazyWhereSoftDelete(QxSqlRelationParams ¶ms) const
virtual QVariant getIdFromQuery(bool bEager, QxSqlRelationParams ¶ms, int iOffset, int iNameIndex) const
virtual void lazyJoin(QxSqlRelationParams ¶ms) const
virtual void lazyInsert_ResolveInput(QxSqlRelationParams ¶ms) const
virtual void eagerJoin(QxSqlRelationParams ¶ms) const
QxSqlRelation_OneToOne(IxDataMember *p)
virtual void eagerFrom(QxSqlRelationParams ¶ms) const
qx::QxSqlRelation<DataType, Owner> : base class for all relationships defined between 2 classes (or b...
bool callTriggerBeforeFetch(type_data &t, QxSqlRelationParams ¶ms) const
bool isNullData(QxSqlRelationParams ¶ms) const
QxSqlRelation< DataType, Owner >::type_tmp_3 type_data
type_data & getData(QxSqlRelationParams ¶ms) const
bool callTriggerAfterFetch(type_data &t, QxSqlRelationParams ¶ms) const
qx::QxSqlRelationParams : define list of parameters to transfer to relationships to manage SQL querie...
void setOwner(void *pOwner)
void setCustomAliasOwner(const QString &s)
void setOffset(long lOffset)
void setIndexOwner(long lIndex)
QString getCustomAlias() const
QSqlDatabase & database()
bool checkColumns(const QString &s) const
qx::dao::save_mode::e_save_mode saveMode() const
QString getCustomAliasOwner() const
type_lst_relation_linked * relationX() const
bool recursiveMode() const
QSqlError save(T &t, QSqlDatabase *pDatabase=NULL)
Insert (if no exist) or update (if already exist) an element or a list of elements into database.
QSqlError save_with_relation_recursive(T &t, qx::dao::save_mode::e_save_mode eSaveMode=qx::dao::save_mode::e_check_insert_or_update, QSqlDatabase *pDatabase=NULL, qx::QxSqlRelationParams *pRelationParams=NULL)
Insert (if no exist) or update (if already exist) recursively an element and all levels of relationsh...
bool is_valid_primary_key(const T &t)
Root namespace for all QxOrm library features.