IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

besoin d'aide ! compilation


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut besoin d'aide ! compilation
    Bonjour je réalise un programme actuellement pour aller récupérer des données en base.

    mais la je suis tombé sur une tuile et je sais pas faire comment.

    J'ai le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    /***********************************************************************/
    class TransactionSqlThreadMesure : public QThread
    {
        Q_OBJECT
     
    public:
        TransactionSqlThreadMesure();
        ~TransactionSqlThreadMesure();
     
        // add transaction from parent
        void addTransaction(TransactionSql *transactsql);
     
        //Sql request
        void ExexuteSaveMesure(const Mesure mesure);
        void ExecuteGetMesures(int recette, int quantite, int eauplus, int nbrmesure =3 , int nbrJourPrec = 1);
        void ExecuteGetMesureMoy(int recette, int quantite, int nbrmesure = 3, int nbrJourPrec = 1);
     
    signals:
        void ErrorMessage(QString message);
        void MesuresReady(QList<Mesure> mesures);
        void MesureMoyReady(QList<Mesure> mesures);
     
    protected:
        void Run();
        // sql functions
        QList<Mesure> GetMesuresFromSql(int recette, int quantite, int eauplus, int nbrmesure, int nbrJourPrec);
        QList<int> GetMesureMoyNbr(int recette, int quantite);
        Mesure ComputeMesureMoy(const QList<Mesure> mesures);
     
    private:
        //Ressource parameters
        QQueue<TransactionSql *> _transactionSql;
     
        //Database Parameter
    };
     
     
    /***********************************************************************/
    class TransactionSql
    {
    public:
        TransactionSql(TransactionSqlThreadMesure *parent) : _parent(parent) { }
        virtual ~TransactionSql() { }
        virtual void apply() = 0;
     
    private:
        TransactionSqlThreadMesure *_parent;
    };
     
    /***********************************************************************/
    class TransactionSqlWriteMesure : public TransactionSql
    {
    public:
        TransactionSqlWriteMesure(TransactionSqlThreadMesure *parent, const Mesure &mesure): TransactionSql(parent),_mesure(mesure) {}
        void apply();
     
    private:
        Mesure _mesure;
    };
     
    /***********************************************************************/
    class TransactionSqlReadMesure : public TransactionSql
    {    
    public:
        TransactionSqlReadMesure(TransactionSqlThreadMesure *parent, int recette, int quantite, int eauplus, int nbrmesure = 3, int nbrjourprec = 1): TransactionSql(parent), _recette(recette), _quantite(quantite), _eauplus(eauplus), _nbrmesures(nbrmesure), _nbrjourprec(nbrjourprec) {}
        void apply();
     
    private:
        int _recette;
        int _quantite;
        int _eauplus;
        int _nbrmesures;
        int _nbrjourprec;
    };
     
    /***********************************************************************/
    class TransactionSqlReadMesureMoy : public TransactionSql
    {   
    public:
        TransactionSqlReadMesureMoy(TransactionSqlThreadMesure *parent, int recette, int quantite, int nbrmesure = 3, int nbrjourprec = 1): TransactionSql(parent), _recette(recette), _quantite(quantite), _nbrmesures(nbrmesure), _nbrjourprec(nbrjourprec) {}
        void apply();
     
    private:
        int _recette;
        int _quantite;
        int _nbrmesures;
        int _nbrjourprec;
     
    };
    qui me permet de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void TransactionSqlWriteMesure::apply()
    {
        this->_parent->ExexuteSaveMesure(_mesure);
    }
     
    /**************************************************************************************************/
    void TransactionSqlReadMesure::apply()
    {
        this->_parent->ExecuteGetMesures(_recette, _quantite, _eauplus, _nbrmesures, _nbrjourprec );
    }
     
    /**************************************************************************************************/
    void TransactionSqlReadMesureMoy::apply()
    {
        this->_parent->ExecuteGetMesureMoy(_recette, _quantite, _eauplus, _nbrmesures, _nbrjourprec );
    }

    l'idée c'est de pouvoir dire a ma class "TransactionSqlThreadMesure" d'executer les différente commandes stocké dans la QQueue.

    le soucis c'est que j'ai un probléme de compilation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sql_Thread.h:56: error: 'TransactionSql' has not been declared
    Sql_Thread.h:77: error: 'TransactionSql' was not declared in this scope
    Sql_Thread.h:77: error: template argument 1 is invalid
    qui est meme tout a fait normal, vu que 'TransactionSql' n'est pas encore déclaré. Y a t-il un moyen de résoudre ce probléme.

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    Alors j'ai résolu le probléme en ayant mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class TransactionSqlThreadMesure;
    et je me retrouve avec ca mtn:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sql_Thread.h: In member function 'virtual void TransactionSqlWriteMesure::apply()':
    Sql_Thread.h:59: error: 'TransactionSqlThreadMesure* TransactionSql::_parent' is private
    Sql_Thread.cpp:374: error: within this context
    Sql_Thread.h: In member function 'virtual void TransactionSqlReadMesure::apply()':
    Sql_Thread.h:59: error: 'TransactionSqlThreadMesure* TransactionSql::_parent' is private
    Sql_Thread.cpp:380: error: within this context
    Sql_Thread.h: In member function 'virtual void TransactionSqlReadMesureMoy::apply()':
    Sql_Thread.h:59: error: 'TransactionSqlThreadMesure* TransactionSql::_parent' is private
    Sql_Thread.cpp:386: error: within this context
    ca doit etre tout béte mais je suis vmt fatigué la, merci

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    désolé pour les multi-post, mais bon en ayant mis la porté 'protected' ca passe mais ca me mes ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    debug/Sql_Thread.o:C:\Users\Tiago\Desktop\Couvrot\MixometerR/Sql_Thread.cpp:374: undefined reference to `TransactionSqlThreadMesure::ExexuteSaveMesure(Mesure)'
    debug/Sql_Thread.o:C:\Users\Tiago\Desktop\Couvrot\MixometerR/Sql_Thread.cpp:380: undefined reference to `TransactionSqlThreadMesure::ExecuteGetMesures(int, int, int, int, int)'
    debug/Sql_Thread.o:C:\Users\Tiago\Desktop\Couvrot\MixometerR/Sql_Thread.cpp:386: undefined reference to `TransactionSqlThreadMesure::ExecuteGetMesureMoy(int, int, int, int)'
    debug/moc_Sql_Thread.o:moc_Sql_Thread.cpp:(.rdata$_ZTV26TransactionSqlThreadMesure[vtable for TransactionSqlThreadMesure]+0x14): undefined reference to `TransactionSqlThreadMesure::~TransactionSqlThreadMesure()'
    debug/moc_Sql_Thread.o:moc_Sql_Thread.cpp:(.rdata$_ZTV26TransactionSqlThreadMesure[vtable for TransactionSqlThreadMesure]+0x18): undefined reference to `TransactionSqlThreadMesure::~TransactionSqlThreadMesure()'
    vraiment trés trés fatigué

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 774
    Par défaut
    Si tu ne définis pas les fonctions appelées, le compilateur ne peut pas les inventer pour toi .

    Il faut que tu écrives ta classe TransactionSqlThreadMesure.

    G.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Par défaut
    La honte pour moi, merci pour ton aide, tu me sauve

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide compilation
    Par popo_joe dans le forum Caml
    Réponses: 2
    Dernier message: 26/04/2008, 01h29
  2. Compilation latex en une ligne : besoin d'aide!
    Par choinul dans le forum Programmation (La)TeX avancée
    Réponses: 2
    Dernier message: 08/02/2008, 17h26
  3. Besoin d'aide pour compiler des sources
    Par Fabouney dans le forum C
    Réponses: 9
    Dernier message: 26/07/2006, 00h02
  4. Besoin d'aide pour contourner une internal compiler error
    Par Laurent Gomila dans le forum C++
    Réponses: 18
    Dernier message: 27/06/2006, 22h09
  5. Réponses: 4
    Dernier message: 29/08/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo