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 :

Version BETA : QxOrm 1.2.4 - Nouveau moteur de relations à tester


Sujet :

QxOrm

  1. #1
    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 Version BETA : QxOrm 1.2.4 - Nouveau moteur de relations à tester
    Bonjour à tous,

    J'ai besoin de votre aide pour tester la version BETA de QxOrm 1.2.4.
    Le moteur permettant de fetcher les relations a beaucoup évolué, et il faut vérifier en priorité qu'il n'y a aucune régression par rapport à la version 1.2.3.
    J'ai fais des tests unitaires de mon côté (sous Windows et Linux) et je n'ai pas constaté de régression.
    L'idéal serait de tester avec les applications que vous avez écrites dépendantes de la bibliothèque QxOrm...

    Voici le lien de téléchargement de la version QxOrm 1.2.4 BETA XX :
    http://www.qxorm.com/version/QxOrm_1.2.4_BETA_23.zip

    Dans cette version, il est possible de fetcher plusieurs niveaux de relations (dans les versions précédentes, on ne pouvait fetcher qu'un seul niveau de relations).
    Par exemple, à partir du tutoriel qxBlog, il est maintenant possible de récupérer les données suivantes avec 1 seule requête :
    1- récupérer un blog et son author ;
    2- pour l'author fetché, je souhaite récupérer tous les blogs qu'il a écrit ;
    3- pour chaque blog qu'il a écrit, je souhaite récupérer tous les commentaires associés.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    blog_ptr blog_tmp = blog_ptr(new blog(10));
    QSqlError daoError = qx::dao::fetch_by_id_with_relation("author_id->list_blog->list_comment", blog_tmp);
    Il est également possible de créer une liste de relations à récupérer, comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    blog_ptr blog_tmp = blog_ptr(new blog(10));
    QStringList relation;
    relation << "author_id->list_blog->list_comment";
    relation << "author_id->list_blog->list_category";
    relation << "list_comment";
    relation << "list_category";
    QSqlError daoError = qx::dao::fetch_by_id_with_relation(relation, blog_tmp);
    Pour récupérer toutes les relations pour un niveau donné, il faut utiliser le mot-clé "*".
    Par exemple, pour récupérer toutes les données de toutes les relations sur 3 niveaux, il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    blog_ptr blog_tmp = blog_ptr(new blog(10));
    QSqlError daoError = qx::dao::fetch_by_id_with_relation("*->*->*", blog_tmp);
    Remarque : l'opérateur "->" correspond à une jointure de type "LEFT OUTER JOIN" (jointure par défaut dans QxOrm).
    Pour exécuter une jointure de type "INNER JOIN" entre 2 relations, il faut utiliser l'opérateur ">>", par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    blog_ptr blog_tmp = blog_ptr(new blog(10));
    QSqlError daoError = qx::dao::fetch_by_id_with_relation("author_id>>list_blog>>list_comment", blog_tmp);
    Je vais écrire une documentation sur cette nouvelle fonctionnalité de QxOrm 1.2.4...

    Merci d'avance pour tous les tests que vous pourrez effectuer sur cette version BETA...

    EDIT1 : ajout de la fonction qx::dao::execute_query<T> pour appeler des requêtes personnalisées ou des procédures stockées.

    EDIT2 : corrige un problème avec la cible d'installation unix (copie des fichiers inl).

    EDIT3 : prise en charge du type boost::optional<T> pour gérer la valeur NULL au niveau BDD sans passer par le type QVariant.

    EDIT 4 : ajout de la classe qx::QxDaoAsync pour faciliter l'appel de requêtes dans des threads différents (asynchrone) => permet entre autre de ne pas bloquer l'IHM pendant une requête.
    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.

  2. #2
    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
    De mon côté, mon appli semble bien tourner avec la beta 23.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/08/2014, 22h31
  2. Réponses: 4
    Dernier message: 13/01/2012, 12h24
  3. Opera lance la version beta de son nouveau service de messagerie
    Par Hinault Romaric dans le forum Actualités
    Réponses: 4
    Dernier message: 12/04/2011, 17h21
  4. Réponses: 16
    Dernier message: 02/12/2005, 00h19

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