bonjour, dans le but d'un de mes programmes, j'aimerais envoyer un QSqlQuery par mon socket, or il n'y a pas d'operateur surcharger pour QSqlQuery dans QDataStream.
quelqu'un aurais une solution a me proposer ^^' ?
merci d'avance![]()
bonjour, dans le but d'un de mes programmes, j'aimerais envoyer un QSqlQuery par mon socket, or il n'y a pas d'operateur surcharger pour QSqlQuery dans QDataStream.
quelqu'un aurais une solution a me proposer ^^' ?
merci d'avance![]()
Écrire toi-même l'opérateur en question ?
Il faut savoir ce que tu veux afficher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QDataStream &operator<<(QDataStream &out, const Type &obj); QDataStream &operator>>(QDataStream &in, Type &obj);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 friend QDataStream &operator<<(QDataStream &out, const Type &obj) { out << obj.ceQueTuVeuxAfficher(); return out; }
Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.
Créer des applications graphiques en Python avec PyQt5
Créer des applications avec Qt 5.
Pas de question d'ordre technique par MP !
je n'arrive pas a comprendre ce que tu entend par ce que je veux afficher ^^', tout ce que je veux faire passer par l'operateur de flux, c'est le contenue ma QSqlQuery.
merci aussi de ta réponse =)
Tu dois savoir ce que tu veux afficher depuis ta requête : tu veux afficher un tableau ? Tu le mets en forme à cet endroit. Tu veux retourner du YAML ? Idem.
Cette fonction va te servir à définir la manière d'afficher les informations. Tu dois donc savoir quelles infos afficher et la manière. Si Qt ne définit rien, tu dois le faire toi-même.
Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.
Créer des applications graphiques en Python avec PyQt5
Créer des applications avec Qt 5.
Pas de question d'ordre technique par MP !
bah ce que je veux afficher c'est la QSqlQuery sous forme de tableau, je sais pas si c'est possible ><
C'est pour envoyer par socket et pas pour afficher, ce qui ne change pas grand chose en fait : au lieu de tout convertir en QString, tu dois convertir chaque élément de ton QSqlQuery en élément adéquate pour les envoyer. Comme tu ne sais pas forcement quel type et en quelle quantité tu dois envoyer (si tu as plusieurs requêtes différentes par exemple), alors tu dois également envoyer la taille et les formats.
Par exemple, en pseudo code :
etc. pour chaque type de données, chaque champ, chaque résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 stream << nombre de résultats pour chaque résultat stream << nombre de champs pour chaque champ stream << type de champ switch type de champ un entier : stream << entier (valeur de champ) ...
Sinon, tu peux tout convertir en format texte (type cvs) avec la même méthode (en utilisant un QTextStream) et envoyer le tout
C'est très lourd et vouloir tout envoyer, ce n'est pas la solution idéale, il vaut mieux faire le trie avant d'envoyer
Ce n'est pas possible en tant que tel, il faut développer ça toi-même. Par exemple :
C'est un exemple, ça ne prend d'ailleurs pas de QSqlQuery en paramètre étant donné que je ne connais pas trop cette classe. Ça te montre le genre de truc à faire, la marche à suivre. C'est à faire toi-même, n'attend pas que Qt fasse tout pour toi, tout n'est pas prévu (et ce n'ets pas possible ici : tu ne vas pas forcément afficher tous les champs, etc.).
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 friend QDataStream &operator<<(QDataStream &out, const Query &req) { out << "==========================\n"; for (int i = 0; req.hasTitle(i); ++i) { out << req.getTitle() + " = "; } out << " ="; out << "==========================\n"; foreach(req.els(), el) { out << el.getContent(0) + " = "; // etc. } return out; }
Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.
Créer des applications graphiques en Python avec PyQt5
Créer des applications avec Qt 5.
Pas de question d'ordre technique par MP !
Partager