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 :

Erreur de segmentation


Sujet :

Bases de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2014
    Messages : 26
    Par défaut Erreur de segmentation
    Bonjour,

    Je suis sur un projet de gestion de stock avec une BDD, mais mon problème est que je ne peux plus créer d'instances d'objets.

    Lorsque j'essai d'en créer une, une petite fenêtre Windows m'affiche que le programme s'est fermé et le débogage me dit:

    "L'inférieur a stoppé car il a reçu un signal du système d'exploitation.

    Nom du signal :

    SIGSEGV

    Signification du signal :

    Segmentation fault

    "

    Je vous donne le code car je suis franchement perdu.

    MainWindow.h
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    #include <QMainWindow>
    #include <QAction>
    #include <QLineEdit>
    #include <QTableWidget>
    #include <QTableWidgetItem>
    #include <QMessageBox>
    #include <QSqlDatabase>
    #include <QSqlQuery>
    #include <QHBoxLayout>
    #include <QFormLayout>
    #include <QPushButton>
    #include <QVBoxLayout>
    #include <QStringList>
    #include <QSpinBox>
    #include <QComboBox>
    #include <QSqlError>
    #include <QTabWidget>
     
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    public:
        MainWindow();
    public slots:
     
    private:
        QSqlDatabase db;
        QWidget *centre;
        QVBoxLayout *layFenetre;
        QTabWidget *tab;
     
    };
     
    #endif // MAINWINDOW_H
    MainWindow.cpp
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    MainWindow::MainWindow()
    {
        centre = new QWidget;
            layFenetre = new QVBoxLayout;
                tab = new QTabWidget;
     
     
                         //STOCK
                            QWidget *stock = new QWidget;
                              QHBoxLayout *layStock = new QHBoxLayout;
                                QTableWidget *table = new QTableWidget(0, 6);
                                   QStringList titre;
                                  titre << "Code Article" << "Article" << "Quantité" << "Prix Unitaire" << "Montant Total" << "Famille";
                               table->setHorizontalHeaderLabels(titre);
                              layStock->addWidget(table);
                             stock->setLayout(layStock);
                         //ENTREES
                              QWidget *entree = new QWidget;
                                QLineEdit *lineFournisseurE = new QLineEdit;
                                QLineEdit *lineNumCommandeE = new QLineEdit;
                                QLineEdit *lineCodeArticleE = new QLineEdit;
                                QLineEdit *lineArticleE = new QLineEdit;
                                QSpinBox *spinQuantiteeE = new QSpinBox;
                                    spinQuantiteeE->setAccelerated(true);
                                    spinQuantiteeE->setRange(0, 999999);
                                QSpinBox *spinPrixUE = new QSpinBox;
                                    spinPrixUE->setAccelerated(true);
                                    spinPrixUE->setRange(0, 999999);
                                    spinPrixUE->setSuffix(" €");
                                QLineEdit *linePrixTotalE = new QLineEdit;
                                QComboBox *comboFamilleE = new QComboBox;
                                    comboFamilleE->addItem("Fer");
                                    comboFamilleE->addItem("Electricité");
                                QPushButton *btAjouterStock = new QPushButton("Ajouter au stock");
                              QFormLayout *layEntree = new QFormLayout;
                                layEntree->addRow("Fournisseur: ", lineFournisseurE);
                                layEntree->addRow("N° Commande: ", lineNumCommandeE);
                                layEntree->addRow("Code Article: ", lineCodeArticleE);
                                layEntree->addRow("Article: ", lineArticleE);
                                layEntree->addRow("Quantité: ", spinQuantiteeE);
                                layEntree->addRow("Prix Unitaire: ", spinPrixUE);
                                layEntree->addRow("Prix Total: ", linePrixTotalE);
                                layEntree->addRow("Famille: ", comboFamilleE);
                                layEntree->addRow(btAjouterStock);
                              entree->setLayout(layEntree);
                         //SORTIES
                                QWidget *sortie = new QWidget;
                                    QLineEdit *lineCodeArticleS = new QLineEdit;
                                    QLineEdit *lineArticleS = new QLineEdit;
                                    QSpinBox *spinQuantiteeS = new QSpinBox;
                                        spinQuantiteeS->setAccelerated(true);
                                        spinQuantiteeS->setRange(0, 999999);
                                    QComboBox *comboFamilleS = new QComboBox;
                                        comboFamilleS->addItem("Fer");
                                        comboFamilleS->addItem("Electricité");
                                    QLineEdit *lineBatimentS = new QLineEdit;
                                    QPushButton *btSortie = new QPushButton("Sortie");
                                  QFormLayout *laySortie = new QFormLayout;
                                    laySortie->addRow("Code Article: ", lineCodeArticleS);
                                    laySortie->addRow("Article: ", lineArticleS);
                                    laySortie->addRow("Quantité: ", spinQuantiteeS);
                                    laySortie->addRow("Famille: ", comboFamilleS);
                                    laySortie->addRow("Batiment: ", lineBatimentS);
                                    laySortie->addRow(btSortie);
                              sortie->setLayout(laySortie);
     
     
                    //On ajoute les onglets
                    tab->addTab(stock, "Stock");
                    tab->addTab(entree, "Entrées");
                    tab->addTab(sortie, "Sortie");
                //On ajoute les onglets au layout principal
                layFenetre->addWidget(tab);
            //On met le layout principal sur le widget central
           centre->setLayout(layFenetre);
        //On met le Widget qui contient le centre au centre
        setCentralWidget(centre);
    et le Main.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <QApplication>
    #include "MainWindow.h"
     
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
     
        MainWindow fenetre;
     
        fenetre.show();
        return app.exec();
    Voilà, ce code me produit l'erreur, mais lorsque je retire le "QSqlDatabase db;", l'application se lance sans erreur.

    J'espère que vous saurez trouver une petite explication Merci

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Par défaut
    Salut.
    Rajoute "sql" dans ton fichier pro à la ligne pour avoir

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Salut,
    Es-tu sûr d'avoir compiler les drivers pour les différents types de BDD (MySql, postgreSQL, SQLLite...)? Un petit lien

Discussions similaires

  1. Erreurs de segmentation !
    Par anti-conformiste dans le forum Applications et environnements graphiques
    Réponses: 16
    Dernier message: 18/10/2005, 11h11
  2. Erreur de segmentation
    Par Trunks dans le forum C
    Réponses: 3
    Dernier message: 06/10/2005, 18h28
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

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