/** * @RDE_HEADER@ * Template for 'real' structures including insert/update/delete functions for db * $Id$ * $HeadURL$ * $Author$ */ // filename: tab_db_impl.h #pragma once #include #include #include #include #include #include #include #include #include class NSqlQuery; namespace TrainingAreaBase { class TAB_COMMON_EXPORT DatabaseInterfaceImpl final : public DatabaseInterface { Q_OBJECT public: explicit DatabaseInterfaceImpl(int exerciseId); ~DatabaseInterfaceImpl(); bool init(const QSqlDatabase &dbConnection) override final; bool init(const QString &dbUser, const QString &dbPasswd, const QString &dbDriver, const QString &dbHost, const QString &dbName) override final; QString schemaName() const override final; QString dbUser() const override final; const QSqlDatabase &database() const override final { return m_dbConnection; } void setEmitMessageOnError(bool bEmit) override final; QSqlError getLastError() const override final; // Database::AesId2TaId bool insert(Database::AesId2TaId &data) override final; bool upsert(Database::AesId2TaId &data) override final; bool update(const Database::AesId2TaId &data) override final; bool insert(std::vector &cont) override final; bool upsert(std::vector &cont) override final; bool update(const std::vector &cont) override final; bool select(QVector &dataVec) override final; bool select(const std::function &cb) override final; bool selectByExerciseId(QVector &dataVec, const qint32 &exerciseId, const QString &orderBy = QString()) override final; bool selectByExerciseId(const std::function &cb, const qint32 &exerciseId, const QString &orderBy = QString()) override final; protected: bool selectPrepareInternalAesId2TaId(const QString &where); bool selectFetchInternalAesId2TaId(const std::function &cb); public: bool selectAesId2TaId(qint32 aesTetraId, Database::AesId2TaId &data) override final; bool removeAesId2TaId(qint32 aesTetraId) override final; bool removeAesId2TaIdByExerciseId(const qint32 &exerciseId) override final; bool fixUpSequenceAesId2TaId() override final; bool truncateAesId2TaId() override final; // Database::AesId2TaId // Database::PrtCnvMember bool insert(Database::PrtCnvMember &data) override final; bool upsert(Database::PrtCnvMember &data) override final; bool update(const Database::PrtCnvMember &data) override final; bool insert(std::vector &cont) override final; bool upsert(std::vector &cont) override final; bool update(const std::vector &cont) override final; bool select(QVector &dataVec) override final; bool select(const std::function &cb) override final; protected: bool selectPrepareInternalPrtCnvMember(const QString &where); bool selectFetchInternalPrtCnvMember(const std::function &cb); public: bool selectPrtCnvMember(qint32 id, Database::PrtCnvMember &data) override final; bool removePrtCnvMember(qint32 id) override final; bool fixUpSequencePrtCnvMember() override final; bool truncatePrtCnvMember() override final; // Database::PrtCnvMember // Database::PrtCnvStatus bool insert(Database::PrtCnvStatus &data) override final; bool upsert(Database::PrtCnvStatus &data) override final; bool update(const Database::PrtCnvStatus &data) override final; bool insert(std::vector &cont) override final; bool upsert(std::vector &cont) override final; bool update(const std::vector &cont) override final; bool select(QVector &dataVec) override final; bool select(const std::function &cb) override final; protected: bool selectPrepareInternalPrtCnvStatus(const QString &where); bool selectFetchInternalPrtCnvStatus(const std::function &cb); public: bool selectPrtCnvStatus(qint32 id, Database::PrtCnvStatus &data) override final; bool removePrtCnvStatus(qint32 id) override final; bool fixUpSequencePrtCnvStatus() override final; bool truncatePrtCnvStatus() override final; // Database::PrtCnvStatus // Database::PrtCnvToCentral bool insert(Database::PrtCnvToCentral &data) override final; bool upsert(Database::PrtCnvToCentral &data) override final; bool update(const Database::PrtCnvToCentral &data) override final; bool insert(std::vector &cont) override final; bool upsert(std::vector &cont) override final; bool update(const std::vector &cont) override final; bool select(QVector &dataVec) override final; bool select(const std::function &cb) override final; protected: bool selectPrepareInternalPrtCnvToCentral(const QString &where); bool selectFetchInternalPrtCnvToCentral(const std::function &cb); public: bool selectPrtCnvToCentral(qint32 id, Database::PrtCnvToCentral &data) override final; bool removePrtCnvToCentral(qint32 id) override final; bool fixUpSequencePrtCnvToCentral() override final; bool truncatePrtCnvToCentral() override final; // Database::PrtCnvToCentral // Database::PrtCnvToRadio bool insert(Database::PrtCnvToRadio &data) override final; bool upsert(Database::PrtCnvToRadio &data) override final; bool update(const Database::PrtCnvToRadio &data) override final; bool insert(std::vector &cont) override final; bool upsert(std::vector &cont) override final; bool update(const std::vector &cont) override final; bool select(QVector &dataVec) override final; bool select(const std::function &cb) override final; protected: bool selectPrepareInternalPrtCnvToRadio(const QString &where); bool selectFetchInternalPrtCnvToRadio(const std::function &cb); public: bool selectPrtCnvToRadio(qint32 id, Database::PrtCnvToRadio &data) override final; bool removePrtCnvToRadio(qint32 id) override final; bool fixUpSequencePrtCnvToRadio() override final; bool truncatePrtCnvToRadio() override final; // Database::PrtCnvToRadio protected: QString getTableName(const QString &tableName) const; protected: QSqlDatabase m_dbConnection; std::unique_ptr m_query; QSqlError m_lastError; int m_exerciseId; bool m_bEmitMessageOnError; bool m_bCanHandleSchemas; bool m_ownDatabaseConnection; LOGGER_T m_logger; private: bool initInternal(); };// class DatabaseInterfaceImpl } // namespace TrainingAreaBase