32#ifndef _QX_DAO_ASYNC_H_
33#define _QX_DAO_ASYNC_H_
46#ifdef _QX_NO_PRECOMPILED_HEADER
52#include <QtCore/qqueue.h>
54#include <QtSql/qsqlerror.h>
186 bool asyncFetchById(
IxPersistable_ptr pToFetch,
const QVariant &
id = QVariant(),
const QStringList & columns = QStringList(),
const QStringList & relation = QStringList(), QSqlDatabase * pDatabase = NULL);
187 bool asyncFetchAll(
const QString & className,
const QStringList & columns = QStringList(),
const QStringList & relation = QStringList(), QSqlDatabase * pDatabase = NULL);
188 bool asyncFetchByQuery(
const QString & className,
const qx::QxSqlQuery & query,
const QStringList & columns = QStringList(),
const QStringList & relation = QStringList(), QSqlDatabase * pDatabase = NULL);
Common interface (abstract class) for persistents classes using QX_PERSISTABLE_HPP() and QX_PERSISTAB...
QX_DLL_EXPORT QDataStream & operator>>(QDataStream &stream, qx::dao::detail::QxDaoAsyncParams &t) QX_USED
QX_DLL_EXPORT QDataStream & operator<<(QDataStream &stream, const qx::dao::detail::QxDaoAsyncParams &t) QX_USED
Define a user SQL query added to default SQL query builded by QxOrm library, and used by qx::dao::xxx...
qx::QxDaoAsync : helper class to execute SQL queries in another thread (asynchronous way) using qx::I...
bool asyncInsert(IxPersistable_ptr pToInsert, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)
bool asyncDeleteById(IxPersistable_ptr pToDelete, const QVariant &id=QVariant(), QSqlDatabase *pDatabase=NULL)
bool asyncDestroyById(IxPersistable_ptr pToDestroy, const QVariant &id=QVariant(), QSqlDatabase *pDatabase=NULL)
bool asyncFetchById(IxPersistable_ptr pToFetch, const QVariant &id=QVariant(), const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)
bool isQueryRunning() const
void queryFinished(const QSqlError &daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
void onQueryFinished(const QSqlError &daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
bool asyncDeleteByQuery(const QString &className, const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)
bool asyncExecuteQuery(const QString &className, qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)
void queryStarted(qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
bool asyncFetchByQuery(const QString &className, const qx::QxSqlQuery &query, const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)
bool asyncDestroyAll(const QString &className, QSqlDatabase *pDatabase=NULL)
bool asyncUpdate(IxPersistable_ptr pToUpdate, const qx::QxSqlQuery &query=qx::QxSqlQuery(), const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)
bool asyncCallQuery(qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)
QMutex m_mutex
Mutex => qx::QxDaoAsync is thread-safe.
qx::dao::detail::QxDaoAsyncParams_ptr m_pDaoParams
Parameters to execute query.
bool asyncDeleteAll(const QString &className, QSqlDatabase *pDatabase=NULL)
bool asyncSave(IxPersistable_ptr pToSave, const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)
bool asyncFetchAll(const QString &className, const QStringList &columns=QStringList(), const QStringList &relation=QStringList(), QSqlDatabase *pDatabase=NULL)
bool asyncDestroyByQuery(const QString &className, const qx::QxSqlQuery &query, QSqlDatabase *pDatabase=NULL)
bool asyncCount(const QString &className, const qx::QxSqlQuery &query=qx::QxSqlQuery(), QSqlDatabase *pDatabase=NULL)
qx::QxSqlQuery : define a user SQL query added to default SQL query builded by QxOrm library,...
qx::dao::detail::QxDaoAsyncRunner : class with a slot to execute queries in another thread
void queryFinished(const QSqlError &daoError, qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
void onQueryStarted(qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
QSqlError runQuery(qx::dao::detail::QxDaoAsyncParams_ptr pDaoParams)
virtual ~QxDaoAsyncRunner()
std::shared_ptr< QxDaoAsyncParams > QxDaoAsyncParams_ptr
Root namespace for all QxOrm library features.
std::shared_ptr< qx::IxPersistableCollection > IxPersistableCollection_ptr
std::shared_ptr< QxDaoAsync > QxDaoAsync_ptr
std::shared_ptr< qx::IxPersistable > IxPersistable_ptr
qx::dao::detail::QxDaoAsyncParams : all parameters for qx::QxDaoAsync class to execute queries
IxPersistableCollection_ptr pListOfInstances
List of instances fetched by query.
qx::QxSqlQuery query
Query parameter to execute action.
dao_action daoAction
Action to execute into the thread (asynchronous way)
bool useExecBatch
If true then use the QSqlQuery::execBatch() method to improve performance inserting/updating/deleting...
QStringList listRelations
List of relationships parameter to execute action.
QStringList listColumns
List of columns parameter to execute action.
QVariant id
Current instance id parameter to execute action.
QSqlDatabase * pDatabase
Database parameter to execute action.
IxPersistable_ptr pInstance
Current instance parameter to execute action.
long daoCount
Dao count value returned by qx::dao::count query.
QString className
Classname parameter to execute action (must implement qx::IxPersistable interface)