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