Bonsoir,

Je travaille actuellement sur un petit projet où je fais des requête sql à l'aide de QSql et à l'aide de quelques fonctions je crée une liste de message.

Pour l'instant c'est très lourd, mais je compte bien faire différemment.

J'utilisais les vector mais le fait de parcourir mon vector et de faire des push_back, invalidait l'iterator.

Du coup, je suis passé au liste. Et là plus de problème. Je me demande tout de même si ce n'est pas un peu sale.

Voici :

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
 
void Feeder::update()
{
        std::wstring tempString;
        queryExec("SELECT * FROM staff WHERE salary > 1000");
 
        std::list<SimpleMessage*>::iterator it = m_messageList.begin();
 
 
        while (queryNext()) 
        {
           tempString = (getValue(1).toString()).toStdWString () ;
 
            if( it != m_messageList.end() )
            {
                if(*it)
                {   
                    if( (*it)->getContent() == tempString )
                    {
                        ++it;
                    }
                    else 
                    {   
                        m_messageList.push_back( new SimpleMessage( (getValue(1).toString()).toStdWString ()) );  
                    }
                }
                else
                {
                    cout<<"error  NULL pointer on MessageList... "<<endl;
                }
            }
            else
            {
                m_messageList.push_back( new SimpleMessage( (getValue(1).toString()).toStdWString ()) );
                it = m_messageList.begin();
            }
        }
}
Merci d'avance !