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

QxOrm Discussion :

Delete by id avec relations en cascade dans une session


Sujet :

QxOrm

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 151
    Points : 49
    Points
    49
    Par défaut Delete by id avec relations en cascade dans une session
    Hello !

    J'ai un petit souci:
    J'essaie d'utiliser une des nouvelles fonctionnalité de QxOrm 1.2.4, à savoir les operations sur relations multiples, mais je n'y parviens pas:
    Voici ce que j'aimerais faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void deleteForm( const QString docId, qx::QxSession & session )
    {
        using namespace tango::sql;
        Form::Ptr dbForm( new Form() );
        dbForm->uniqueId = docId;
        QSqlError err = session.deleteById( "list_pages->list_sections->list_components", dbForm );
        THROW_IF_SQL_ERROR( err, "Document delete failed!" );
    }

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Avril 2010
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 481
    Points : 4 238
    Points
    4 238
    Par défaut


    operations sur relations multiples...
    session.deleteById( "list_pages->list_sections->list_components", dbForm );
    La nouvelle fonctionnalité sur les relations de QxOrm 1.2.4 concerne uniquement la récupération des données (méthodes fetch, requêtes de type SELECT). J'ai écris une doc sur tout ça, elle va apparaitre dans la FAQ de QxOrm dès que la version 1.2.4 sort officiellement (d'ici quelques jours).

    Pour faire un delete en cascade, soit tu utilises les triggers de QxOrm, soit tu implémentes ça côté base de données. Je pense pour ma part que c'est mieux de le faire côté base de données.

    PS : juste pour info, c'est quoi ta macro THROW_IF_SQL_ERROR ?
    Je pense que c'est inutile car une session peut déclencher une erreur automatiquement (de type qx::dao::sql_error) : ce n'est pas le comportement par défaut de la bibliothèque QxOrm mais tu peux modifier facilement ce comportement pour toute ton application (donc toutes tes sessions) en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    qx::QxSqlDatabase::getSingleton()->setSessionThrowable(true);
    Si tu veux le faire pour une session en particulier, tu peux utiliser le constructeur de la classe : qx::QxSession (const QSqlDatabase &database, bool bOpenTransaction, bool bThrowable);

    Pour plus d'infos sur les sessions :
    FAQ : http://qt.developpez.com/faq/?page=b...qxorm-sessions
    Doc : http://www.qxorm.com/doxygen/html/cl...x_session.html
    Le site de la bibliothèque QxOrm : bibliothèque C++ de gestion de données (Mapping Objet Relationnel ou ORM) basée sur les frameworks Qt et boost.
    QxEntityEditor : éditeur graphique pour la bibliothèque QxOrm (application multi-plateforme pour gérer graphiquement le modèle d'entités).

    Tutoriel : installer un environnement de développement avec QxOrm sous Windows.
    Tutoriel qxBlog : gestion de blogs en C++/Qt.
    Tutoriel qxClientServer : création d'un serveur d'applications en C++/Qt.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 151
    Points : 49
    Points
    49
    Par défaut
    Ah ok !

    Merci

    Le THROW_IF_SQL_ERROR me permet de déclencher les exceptions de mon soft avec tag pour les messages d'erreur à destination de l'utilisateur et du développeur...

    Je vais réfléchir à tout ça, merci !

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/06/2007, 08h30
  2. [c#]probleme avec les menu toolStripItem dans une form mdi??
    Par must19 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/11/2006, 23h02
  3. [SQL] Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 14/08/2006, 13h28
  4. Problème avec nombre d'enregistrements dans une table
    Par zana74 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/08/2006, 13h21
  5. [VB6] Problème avec la touche 0 dans une MaskEdBox
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/03/2006, 09h47

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