Qt Connexion base de données Mysql - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 46 sur 46

Qt Connexion base de données Mysql



  1. #31
    invite4492c379

    Re : Qt Connexion base de données Mysql


    ------

    Citation Envoyé par defender19 Voir le message
    Au final, j'ai trouvé. Le temps de répondre à la boite de dialogue permet en fait de télécharger le fichier. Sinon, la requête n'est pas totalement exécutée et ça ne rentre même pas dans la boucle. Reste à trouver pour patienter 5s.
    Hello,

    moui ... disons que ce serait sympa si QNetworkReply proposait une methode du genre isFinished ou isRunning, non ? Mais bon pour ça il faudrait lire la doc ... Voire le pied s'il y avait un signal finished, non ?

    -----

  2. #32
    defender19

    Re : Qt Connexion base de données Mysql

    J'avais déjà vu les isFinished et isRunning, mais de le cas là, ça marchait pas vraiment! Par contre, le slot j'avais pas vu!

    Par contre, je me demandais, comme je ne télécharge pas le fichier sur l'ordinateur, mais que je lis juste ligne par ligne dans le fichier, la requête se finit-elle avant ou elle dure tout le traitement?

  3. #33
    invite4492c379

    Re : Qt Connexion base de données Mysql

    Citation Envoyé par defender19 Voir le message
    J'avais déjà vu les isFinished et isRunning, mais de le cas là, ça marchait pas vraiment! Par contre, le slot j'avais pas vu!

    Par contre, je me demandais, comme je ne télécharge pas le fichier sur l'ordinateur, mais que je lis juste ligne par ligne dans le fichier, la requête se finit-elle avant ou elle dure tout le traitement?
    En fait l'idéal, d'un point de vue user, serait que l'on ne me demande pas de noms de fichiers mais par contre qu'on me propose un dialog avec une progressbar pour savoir où on en est. L'idéal d'un point de vue programmeur, est de downloader les données dans un fichier temporaire (sauf si les le fichier existe et que les données ne sont pas nouvelles), puis de traiter ce fichier si besoin.
    En ce qui concerne la requete, l'idéal serait de commencer une transaction au début et ne faire un commit que lorsque toutes les données ont été reçues et que tu es certains qu'elles sont valides.

  4. #34
    defender19

    Re : Qt Connexion base de données Mysql

    Pour éclaircir un peu le contexte, l'user donne un numéro de gène, et derrière le programme se charge de remplir la base de données avec les informations sélectionnées (identifiant, longueur, organisme, séquence,...) d'une fiche brut qui contient beaucoup plus d'infos disponible sur internet en téléchargement (les données ne change pas).
    J'ai pour le moment remplacer "l'attente" par un boite de dialogue qui demande confirmation pour le gène en question.
    Le soucis, c'est que je donne la possibilité de rentrer plusieurs gènes d'un coup via un fichier texte rentré par l'user et donc demande confirmation pour chaque gène à chaque fois.

    Pas besoin de barre d'état, vu que c'est rapide (moins de 5 s, voir moins d'une s dans certains cas).

  5. #35
    invite4492c379

    Re : Qt Connexion base de données Mysql

    Citation Envoyé par defender19 Voir le message
    Pour éclaircir un peu le contexte, l'user donne un numéro de gène, et derrière le programme se charge de remplir la base de données avec les informations sélectionnées (identifiant, longueur, organisme, séquence,...) d'une fiche brut qui contient beaucoup plus d'infos disponible sur internet en téléchargement (les données ne change pas).
    J'ai pour le moment remplacer "l'attente" par un boite de dialogue qui demande confirmation pour le gène en question.
    Le soucis, c'est que je donne la possibilité de rentrer plusieurs gènes d'un coup via un fichier texte rentré par l'user et donc demande confirmation pour chaque gène à chaque fois.

    Pas besoin de barre d'état, vu que c'est rapide (moins de 5 s, voir moins d'une s dans certains cas).
    ok ... j'avais pas vu que ce tu downloades dépend de l'entrée du user. Il rentre un numéro, ton programme va chercher les infos sur le net et rempli la bdd. Tu utilises ensuite le fait que ta requete est QIODevice pour le traiter ligne par ligne. Ça se tient, aux gestions des erreurs près (connexion rompu=bdd dans un état instable ?).
    Si tu veux rendre la lecture synchrone essaye http://www.developer.nokia.com/Commu...a_Signal_in_Qt

  6. #36
    defender19

    Re : Qt Connexion base de données Mysql

    Allez dernière question, pour divulguer le programme, je dois mettre quoi comme dll par rapport à la base de données?

    J'ai essayé en rajoutant QSqld4.dll et le plugin qsqlited4.dll mais sur d'autres ordis que le mien, quand il cherche à se connecter, ça met la boite de dialogue erreur avec "Driver not loaded"...

  7. #37
    invite4492c379

    Re : Qt Connexion base de données Mysql

    Hello,

    il faut déployer toutes les dll que ton programme s'attend à trouver. Soit tu installes Qt sur la machine, soir tu distribues celles qui sont nécessaires (cf par exemple la doc sur http://developer.qt.nokia.com/doc/qt...n-dependencies). Donc à mon avis, il te faudra au moins QtCore, QtGUI,QtNetwork,QtSQL ...

  8. #38
    defender19

    Re : Qt Connexion base de données Mysql

    Oui, j'ai oublié de précisé mais toutes les dll "de base", je les ai déjà mis, le programme se lance parfaitement, c'est juste quand le programme doit faire la connexion avec la base qu'il lache et dit "driver not loaded"

  9. #39
    invite4492c379

    Re : Qt Connexion base de données Mysql

    Alors essaye de placer le driver sqlite dans un répertoire sqldrivers là où tu déploies l'appli.

  10. #40
    defender19

    Re : Qt Connexion base de données Mysql

    Citation Envoyé par photon57 Voir le message
    Alors essaye de placer le driver sqlite dans un répertoire sqldrivers là où tu déploies l'appli.
    En effet, ça marche parfaitement comme ça! Merci.

  11. #41
    invite4492c379

    Re : Qt Connexion base de données Mysql

    De rien, c'était écrit dans la doc dont je t'ai donné le lien.

  12. #42
    defender19

    Re : Qt Connexion base de données Mysql

    Je fais un petit retour après longtemps!
    C'est bientôt l'heure de rendre le programme, il a subit de belles améliorations, mais pour le bien, il resterait un truc à améliorer.

    C'est l'histoire de la récupération d'un fichier par internet avant de le lire ligne par ligne pour en extraire des infos.
    Actuellement, je suis obligé de mettre une boite de dialogue pour le programme ait eu le temps de tout récupérer avant de faire le traitement, mais j'aimerai l'enlever pour faciliter le déroulement lors d'ajout de bcp de séquence.

    J'ai donc :

    const QUrl url = QUrl("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=nuccore&rettype =gb&retmode=text&id="+numero);
    const QNetworkRequest requete(url);
    QNetworkAccessManager *m = new QNetworkAccessManager;
    QNetworkReply *r = m->get(requete);

    QMessageBox::information(this, "Confirmation", "Vous allez ajouter le gène : "+numero); // ==> permet l'attente

    QString ligne, id, bp, orga, seq2, produit1;

    ligne=r->readLine();
    J'ai donc vu les fonctions isFinished(), que j'ai mis avant le traitement avec un if, => plante
    j'ai mis une boucle while(r->isRunning()){}, mais que mettre dedans le temps que ça patiente?
    J'ai pensé au slot void QNetworkAccessManager::finishe d ( QNetworkReply * reply ), le probleme c'est que le traitement se ferait dans le slot et que ce traitement renvoit un objet...

    bref je sais pas trop quoi faire, j'ai aussi essayé de faire une pause, dans le programme mais ça n'a pas marché.

    Merci d'avance

  13. #43
    invite4492c379

    Re : Qt Connexion base de données Mysql

    Hello,

    tu as plusieurs choix :

    1. relire mon post #35 (attention l'exemple donné est simple mais peut amener des complications)
    2. Faire un peu pro et utiliser les slots. Ce n'est pas si compliqué que ça mais il va peut être falloir modifier un peu tes classes. Il y a un exemple avec une progressbar sur http://qt-project.org/doc/qt-4.8/network-http.html Cette solution est préférable évidemment.

  14. #44
    defender19

    Re : Qt Connexion base de données Mysql

    Merci pour tes deux pistes, j'ai essayé de voir la deuxième et je comprends vraiment pas tout ce qui est fait.

    J'ai essayé de relier ma fonction à un slot qui prends en charge la lecture ligne par ligne du fichier récupéré d'un internet (rempli l'objet avec les setters),
    avec : connect(m, SIGNAL(finished(QNetworkReply* ), this, SLOT(RecupInfo(QNetworkReply*) );
    avec m => QNetworkAccessManager *m = new QNetworkAccessManager;

    seulement ça ne marche pas, il m'indique : Object::connect: No such slot QWidget::recupInfo(QNetworkRep ly*) in ..\Ptut\fichier.cpp:34
    Le programme s'est terminé subitement.

    Sinon, est que je peux pas faire une boucle : while(r.isRunning){ pause de 2 sec; } ? Par contre, la pause se fait un QTime non?

    Merci

  15. #45
    invite4492c379

    Re : Qt Connexion base de données Mysql

    Essaye avec un simple sleep ... ce n'est pas propre (hérétique selon certains ) mais ça devrait passer aux blocages de threads près (? à tester). Sinon réfère-toi à mon post 35 ; ensuite tout dépend si tu veux faire une appli propre destinée à être utilisée donc un minimum robuste ou juste une démo one shot.

  16. #46
    defender19

    Re : Qt Connexion base de données Mysql

    - Le sleep marche pas, j'ai vu ailleurs que ça bloquait totalement le programme pendant le temps indiqué, donc la requête ne se récupère pas. Et en effet, ça ne marche pas.

    - J'ai essayé la méthode de ton cas post 35, mais ça ne marche pas non plus. J'ai l'impression qu'il ne rentre même pas dans le slot (Qmessage box au début pour voir). J'ai réessayé une méthode avec un autre slot, toujours aucun résultat.

    Ca devrait pas être si sorcier quand même! Et j'ai bien envie que mon appli soit utilisé, sinon à quoi bon la faire. Vu le temps que j'y ai mis, c'est un peu un détail mais ça m'arrangerait que ça marche correctement ;( Rien n'y fait!

    En tout cas merci de ta patience et de tes réponses

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. connexion a une base de données a travers sharepoint
    Par invitea64073d7 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 04/05/2010, 21h37
  2. base de données MySQL (methode merise)
    Par invite298957c6 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 13/03/2010, 17h01
  3. ActionScript, Base de données MySQL
    Par invitee5fedd72 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 07/05/2009, 08h32
  4. importation base de donnée MySQL
    Par invite2b4add88 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 13/03/2007, 18h24
  5. Connexion Java - BD MySQL sur un serveur distant
    Par invited927d23c dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 19/04/2005, 21h09