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

Bases de données Discussion :

Déploiement sous Windows


Sujet :

Bases de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut Déploiement sous Windows
    Salut à tous. J'ai réalisé une petite application sous Qt que j'aimerais déployer. J'ai inclus tous les fichiers DLL concernant les modules que j'ai utilisé, dans le dossier dans lequel se trouve mon exécutable, puis j'ai compilé bien sûr le tout en mode release. Mon application fait appel à une base de données que je lançais avec le wamp. Le problème qui se pose c'est que lorsque je lance l'exécutable, la connexion à la base de données ne marche pas et cela génère une erreur m'informant que la connexion à la base de données a échoué. Voici une image montrant les fichiers DLL que j'ai inclus dans le dossier contenant mon exécutable (carte_grise.exe)

    Nom : Capture.JPG
Affichages : 242
Taille : 52,6 Ko



    Merci d'avance pour votre aide.

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut


    Ton fichier .lib ne sert à rien, seul le compilateur en a besoin.
    Ensuite, il faut respecter l'arborescence imposée par Qt pour les extensions : mets le fichier qsqlmysql.dll dans un dossier sqldrivers, au niveau de ton application (http://doc.qt.io/qt-5/windows-deploy...tml#qt-plugins). Ça devrait aller mieux .
    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 !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Merci d'avoir pris le temps de répondre. J'ai crée le dossier sqldrivers comme tu me l'as demandé et j'y ai placé les fichiers DLL (confère l'image ci-dessous du contenu du dit dossier) mais j'ai toujours la même erreur. Merci

    Nom : Capture.JPG
Affichages : 229
Taille : 18,4 Ko

  4. #4
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    Citation Envoyé par ngono1 Voir le message
    Le problème qui se pose c'est que lorsque je lance l'exécutable, la connexion à la base de données ne marche pas et cela génère une erreur m'informant que la connexion à la base de données a échoué.
    Si une dll était mal installée, on aurait des messages relatifs à leur absence non ?
    Je verrai plutôt une mauvaise adresse ip de connexion ou le serveur sql bloqué par un firewall... tu as tout vérifié ?
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je ne pense pas qu'une DLL soit mal installée vu que tout marche très bien si je lance mon application sous Qt. Et il n'y a pas de problème de pare-feu. Toujours est-il que lorsque je lance l'exécutable directement l'application démarre, mais quand je veux utiliser la base de données ça me génère l'erreur.

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par ngono1 Voir le message
    j'y ai placé les fichiers DLL (confère l'image ci-dessous du contenu du dit dossier)
    ! Le fichier : Qt5Sql.dll doit se situer au niveau de ton exécutable, qsqlmysql.dll doit se trouver dans un sous-dossier sqldrivers. (A priori, libmysql.dll doit être à la racine, à côté de Qt5Sql.dll.) Regarde ce qui est dit dans la documentation et ce qui est fait dans ton installation locale de Qt.

    Citation Envoyé par SkyZoThreaD Voir le message
    Si une dll était mal installée, on aurait des messages relatifs à leur absence non ?
    Qt trifouillant pour charger ces extensions à l'exécution (et non au démarrage de l'application), les erreurs ne sont pas toujours faciles à détecter…

    Citation Envoyé par ngono1 Voir le message
    Et il n'y a pas de problème de pare-feu.
    Comment t'en es-tu assuré ?

    Sinon, quelle est l'erreur précise que te renvoie Qt ? Tu peux afficher plus d'infos avec http://doc.qt.io/qt-5/qsqldatabase.html#lastError. Tu peux aussi afficher la liste des pilotes SQL chargés avec http://doc.qt.io/qt-5/qsqldatabase.html#drivers.
    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 !

  7. #7
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Qt trifouillant pour charger ces extensions à l'exécution (et non au démarrage de l'application), les erreurs ne sont pas toujours faciles à détecter…
    Ah ouai... pas cool ça
    Il n’empêche que la source du problème n'est pas encore claire en l’occurrence. Il se peut que l'ip de la machine de dev soit toujours renseignée dans le code et qu'elle ne soit pas attaquable par le poste client...
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    ! Le fichier : Qt5Sql.dll doit se situer au niveau de ton exécutable, qsqlmysql.dll doit se trouver dans un sous-dossier sqldrivers. (A priori, libmysql.dll doit être à la racine, à côté de Qt5Sql.dll.) Regarde ce qui est dit dans la documentation et ce qui est fait dans ton installation locale de Qt.
    J'ai remis les fichiers DLL comme tu viens de l'indiquer et toujours le même problème. Voici les images montrant le contenu du dossier racine et du sous dossier sqldrivers

    contenu du dossier dans lequel se trouve l'exécutable

    Nom : Capture.JPG
Affichages : 193
Taille : 48,0 Ko

    contenu du sous-dossier sqldrivers

    Nom : Capture2.JPG
Affichages : 181
Taille : 14,0 Ko


    Citation Envoyé par dourouc05 Voir le message
    Comment t'en es-tu assuré ?
    En désactivant simplement le pare-feu

    Citation Envoyé par dourouc05 Voir le message
    Sinon, quelle est l'erreur précise que te renvoie Qt ? Tu peux afficher plus d'infos avec http://doc.qt.io/qt-5/qsqldatabase.html#lastError. Tu peux aussi afficher la liste des pilotes SQL chargés avec http://doc.qt.io/qt-5/qsqldatabase.html#drivers.
    Il me renvoie une erreur disant que le pilote n'a pas été chargé. En fait je ne sais pas, peut-être c'est moi qui ai mal expliqué le problème. Quand je lance mon projet avec Qt tout marche très bien, l'accès à la base de données, les opérations avec la base de données, tout est nickel. Le problème du pilote non chargé ne survient que lorsque je veux lancer directement mon application à partir de l'exécutable se trouvant dans le dossier release; car j'aimerais déployer mon appli.

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par ngono1 Voir le message
    En désactivant simplement le pare-feu
    Quel pare-feu ? Celui de la machine de développement ? Quid de celui du serveur de bases de données ? Tu n'as pas d'équipement réseau un peu sophistiqué entre les deux ? Le serveur de bases de données est bien configuré pour accepter des requêtes de ta machine de test (pas seulement celle de développement) ? Il y a tellement de trucs qui peuvent foirer dès qu'on parle de réseau .

    Enfin, a priori, ces éléments sont écartés pour le moment avec la suite de ton message, le problème se produisant avant la connexion à la base…

    Citation Envoyé par ngono1 Voir le message
    Il me renvoie une erreur disant que le pilote n'a pas été chargé. En fait je ne sais pas, peut-être c'est moi qui ai mal expliqué le problème. Quand je lance mon projet avec Qt tout marche très bien, l'accès à la base de données, les opérations avec la base de données, tout est nickel. Le problème du pilote non chargé ne survient que lorsque je veux lancer directement mon application à partir de l'exécutable se trouvant dans le dossier release; car j'aimerais déployer mon appli.
    Tu as bien affiché la liste des pilotes chargés (QSqlDatabase::drivers(), lien déjà donné) et celui que tu souhaites (MySQL, donc) n'y est pas ? S'il n'y est pas, c'est que Qt ne trouve pas la DLL correspondante (il doit trouver un dossier sqldrivers avec le fichier qsqlmysql.dll dans un des chemins indiqués par http://doc.qt.io/qt-5/qcoreapplicati...l#libraryPaths).
    Si tu trouves bien la bonne entrée, c'est qu'il trouve l'extension, mais n'arrive pas à la charger. Tu as bien pris les mêmes DLL que ta version de développement de Windows ? (On ne sait jamais que tu aies plusieurs versions de Qt sur la même machine…)

    Après ça, je ne sais plus que dire…
    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 !

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je ne charge qu'un seul pilote, celui permettant d'utiliser MySQL. Je n'ai qu'une seule version de Qt installée sur ma machine. D'ailleurs je me demandais s'il y avait quelque chose à rajouter au niveau du code source pour que cela fonctionne pour le déploiement de l'appli, parlant ici des chemins dont tu viens de faire mention.

  11. #11
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    Tu peux déjà installer un mysql workbench sur le poste client et vérifier que la connexion au serveur se fasse bien. Ensuite (et encore une foi), sais-tu quelle ip/hostname est renseigné dans le programme ? (127.0.0.1 ? localhost ? l'ip de la machine dev? )
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je suis en train de vouloir déployer cela localement, j'utilise le wamp pour lancer ma base de données.

  13. #13
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    Citation Envoyé par ngono1 Voir le message
    Je suis en train de vouloir déployer cela localement, j'utilise le wamp pour lancer ma base de données.
    Ca veut dire quoi localement? sur le poste client? sur le réseau local?
    sais-tu quelle ip/hostname est renseigné dans le programme ? (127.0.0.1 ? localhost ? l'ip de la machine dev? )
    Mes messages sont transparents ?
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Je suis sur ma machine. Je fais tout en localhost.

    En passant je me demandais s'il y avait quelque chose à modifier ou à ajouter au niveau du code source quand on veut déployer son application. Merci

  15. #15
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    Citation Envoyé par ngono1 Voir le message
    En passant je me demandais s'il y avait quelque chose à modifier ou à ajouter au niveau du code source quand on veut déployer son application. Merci
    Non, à part les librairies à placer dans les bons dossiers (mais ça a été fait avec Dourouc).
    Tu peux vérifier si tu as spécifié un port dans "mysql_connect()" ...
    Encore une foi : Vérifie que la base est fonctionnelle en te connectant avec un mysql workbench ! Il faut éliminer les doutes uns par uns quand on cherche une panne
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Quand je lance mon projet avec Qt tout fonctionne très bien sans problème, connexion à la BDD, opérations nécessitant la connexion à la BDD (Base de données) , tout est nickel. Mais lorsque tu veux lancer l'appli au travers de son exécutable sur le bureau, et que tu veux faire une opération qui nécessite la connexion à la BDD, une erreur te disant que le pilote n'a pas été chargé apparait. Je n'ai pas mis de port, vu que je travaille sur ma machine. Je pense que si la BDD n'était pas fonctionnelle, alors même en lançant mon application avec Qt, les opérations de connexion à la BDD devraient également échouer, mais ce n'est pas le cas comme j'ai dit plus haut.

  17. #17
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    As-tu le mysqlcppconn.dll dans ton dossier Windows? Sinon récupère-le sur l'autre machine.
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    tu parles de quelle autre machine s'il te plait ? je ne comprends pas, explique un peu s'il te plait.

  19. #19
    Membre expérimenté Avatar de SkyZoThreaD
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2013
    Messages
    583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 583
    Points : 1 615
    Points
    1 615
    Par défaut
    Je parle de la machine sur laquelle tu as fait le développement (si tu l'as fait)
    Tu peux trouver des versions installables du connector mysql ici : https://dev.mysql.com/downloads/connector/cpp/ c'est plus sympas que de copier des dll.
    La liberté est à la sociologie ce que l'instant présent est à la physique relativiste.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    J'ai finalement résolu le problème. Le problème venait des fichiers DLL que j'avais copié. Grâce au débogage, j'ai pu retrouver les fichiers qu'il fallait mettre au niveau de mon dossier racine. Merci à tous ceux qui ont pris leur temps pour me répondre et chercher à m'aider. Bonne journée à tous et merci encore.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Multimédia] Déploiement sous Windows : impossible de lire une vidéo
    Par FantzFoXx dans le forum Qt
    Réponses: 3
    Dernier message: 28/05/2015, 18h38
  2. déploiement d'une appli vb6 sous windows 7 - 32 bits
    Par JiBeL dans le forum Installation, Déploiement et Sécurité
    Réponses: 0
    Dernier message: 07/11/2012, 11h06
  3. Réponses: 0
    Dernier message: 25/01/2011, 12h18
  4. PHP Eclipse sous windows et déploiement sur serveur Linux
    Par napoleon21 dans le forum Eclipse PHP
    Réponses: 1
    Dernier message: 13/10/2009, 22h16
  5. installation Glassfish pour déploiement d'application sous windows
    Par psycho_xn dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 07/11/2008, 17h05

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