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 :

Requête avec un WHERE sur un Uuid (à travers les services)


Sujet :

QxOrm

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut Requête avec un WHERE sur un Uuid (à travers les services)
    Bonsoir,

    est ce qu'il est possible de faire un SELECT ou le WHERE porterait sur un Uuid ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    QUuid teamId = _teamModel->getModelValue(index.row(), "Uuid").toUuid();
    qx_query query;
    query.where("team_id").isEqualTo(teamId);
    _userTeamModel->qxFetchByQuery(query);

  2. #2
    Membre Expert

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut


    Tu peux considérer un QUuid comme un QString.
    La méthode qx_query::isEqualTo() prend un QVariant en paramètre, et il n'y a pas de constructeur de ce type : QVariant(const QUuid &)
    Donc essaye d'écrire quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query.where("team_id").isEqualTo(teamId.toString());
    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 averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut
    J'ai testé votre solution, mais elle ne marche pas. Cela ne me retourne aucun résultat. J'ai tenté d'autre condition(isnotnull ou isnull) pour voir si ma fonction QxFetchByQuery retourné des résultats, et elle me retourne bien des resultats.
    Il y a un moyen de voir la requête qui est executé (sans les paramètre ( ex: ":param1")) ?

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 482
    Par défaut
    J'ai testé votre solution, mais elle ne marche pas. Cela ne me retourne aucun résultat.
    C'est bizarre, car la bibliothèque QxOrm gère la classe QUuid comme un QString.

    Il y a un moyen de voir la requête qui est executée (sans les paramètre ( ex: ":param1")) ?
    Non, il y a un moyen de voir les résultats d'une requête (en utilisant la méthode qx::QxSqlDatabase::setTraceSqlRecord()), mais pas les paramètres d'entrée.

    Essaye de faire ceci :
    1- Exécute QString sUuid = teamId.toString(), puis regarde la valeur de sUuid ;
    2- Ouvre ta BDD, et regarde la valeur du champ dans la table ;
    3- Compare les 2 valeurs : est-ce qu'elles sont identiques ?
    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.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut
    En faite, quand je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    qx_query query ("WHERE team_id like '{f56d921d-3b89-4d3c-b58a-721bd84d8cf3}'");
    _userTeamModel->qxFetchByQuery(query);
    Cela marche, mais quand j'essaie de rendre la query dynamique cela fonctionne plus et même parfois cela fait planter le serveur qui a load les services.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 31
    Par défaut
    J'ai réussi a la rendre dynamique comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    qx_query query;
    QString strQuery = "WHERE team_id like '" + teamId.toString() + "'";
    query.query(strQuery);
    _userTeamModel->qxFetchByQuery(query);
    Est ce normal qu'avec un query.bind ou query.where, cela ne marche pas ?

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

Discussions similaires

  1. [MySQL] Requête simple avec un Where sur un champ utf8_bin
    Par Romanops dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/08/2011, 16h35
  2. Réponses: 4
    Dernier message: 26/07/2011, 11h29
  3. requête avec un where sur une date
    Par tibofo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 06/02/2011, 20h58
  4. Réponses: 16
    Dernier message: 20/01/2011, 12h45
  5. Requête avec variable incrémentée sur changement de clé.
    Par souellet dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/09/2005, 22h47

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