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

Bases de données Discussion :

Modèle/vue et QtSql


Sujet :

Bases de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Par défaut Modèle/vue et QtSql
    Bonjour,

    J'utilise un QDataWidgetMapper pour mapper un modèle QSqlTableModel.
    QDataWidgetMapper est configuré pour ManualSubmit.

    Les données sont bien chargées depuis ma table et affichées.
    Lorsque je modifie un QLineEdit et appelle revert() les données sont rétablies.
    Si je submit() et modifie de nouveau les données et appelle revert(), elles sont toujours rétablies. (Le modèle est donc bien MAJ).
    Mais la BDD, elle n'est jamais MAJ.

    Quelqu'un aurait une idée sur cette bizzarerie ?

    J'obtient un warning lorsque je ferme l'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 96
    Par défaut
    J'ai réduis le problème à :

    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
     
    // Qt
    #include <QtCore>
    #include <QtGui>
    #include <QtSql>
     
    int main(int argc, char* argv[])
    {
        QApplication app(argc, argv);
     
        // BD
        QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
        db.setHostName("localhost");
        db.setUserName("lumz");
        db.setPassword("*********");
        db.setDatabaseName("ma_bdd");
        if(!db.open())
        {
            QMessageBox::critical(0, QObject::trUtf8("Erreur de connexion"), QObject::trUtf8("Impossible de se connecter à la base de données."), QMessageBox::Cancel);
        }
     
        // Modèle
        QSqlTableModel *model = new QSqlTableModel;
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
        model->setTable("t_events");
        model->select();
        model->record(0).setValue(2, "Test");
        model->submitAll();
     
        return app.exec();
    }
    Qui ne marche pas non plus...
    Je sais que j'accède bien à la BDD puisque je parviens à afficher le modèle et qu'il contient bien la BDD.

    Une idée ? (je patauge vraiment là)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 28
    Par défaut
    Bonjour,

    d'après la donc Qt concernant : enum QSqlTableModel::EditStrategy

    QSqlTableModel::OnManualSubmit 2
    All changes will be cached in the model until either submitAll() or revertAll() is called.
    Il semblerait qu'il faille utiliser les méthodes submitAll() or revertAll() pour mettre à jour le model et la base de données.

    Sinon tu peux utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     model.setEditStrategy(QSqlTableModel::OnFieldChange);
    L'édition est répercutée sur le model et dans la base de données.

Discussions similaires

  1. Modéle Vue Contrôleur (MVC)
    Par mine87 dans le forum ALM
    Réponses: 2
    Dernier message: 08/01/2010, 17h00
  2. Modèle/vue , modèle personnalisé
    Par Kymic dans le forum Qt
    Réponses: 4
    Dernier message: 01/08/2009, 17h15
  3. [MVC] Communication Modèle, Vue
    Par dahtah dans le forum MVC
    Réponses: 4
    Dernier message: 25/10/2007, 17h25
  4. Champ de texte et MVC (modèle vue contrôleur)
    Par three minute hero dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2007, 11h04
  5. [JSP][Servlet][Javabean] Modèle Vue Controleur
    Par ay_pepito dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/02/2004, 10h05

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