QT kann MySQL Datenbank nicht öffnen
Verfasst: 18. September 2014 13:40
Hallo,
ich habe das Problem das mein Programm einfach nicht meine Datenbank öffnen kann.
Mit dem Termial geht es, also läuft auch der Server und mein Passwort, Datenbankname , und alles sind richtig.
Jedoch bringt es immer wenn ich auf den Button klicke die Fehlermeldung : QSqlQuery::exec: database not open
Ich möchte mit dem Programm alle Daten aus einer Datenbank auslesen und in einer Tabelle in meinem Programm ausgeben.
Wo liegt mein Fehler .. ?
Hier ist mal mein ganzer bisheriger Code.
tester.h :
hier die tester.cpp
ich habe das Problem das mein Programm einfach nicht meine Datenbank öffnen kann.
Mit dem Termial geht es, also läuft auch der Server und mein Passwort, Datenbankname , und alles sind richtig.
Jedoch bringt es immer wenn ich auf den Button klicke die Fehlermeldung : QSqlQuery::exec: database not open
Ich möchte mit dem Programm alle Daten aus einer Datenbank auslesen und in einer Tabelle in meinem Programm ausgeben.
Wo liegt mein Fehler .. ?
Hier ist mal mein ganzer bisheriger Code.
tester.h :
Code: Alles auswählen
#include <QtGui/QTableWidget>
#include <QtSql/QSqlQueryModel>
#ifndef TESTER_H_
#define TESTER_H_
class Tester : public QTableView
{
Q_OBJECT
public:
Tester();
virtual ~Tester();
void init();
QTableWidget table;
QSqlQueryModel *model;
QSqlDatabase database;
QTableView *meineView;
public slots:
void pushButtonClicked();
};
#endif /* TESTER_H_ */Code: Alles auswählen
#include <QtCore/QString>
#include <QtGui/QApplication>
#include "mysql_connection.h"
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <QtSql/QSqlDatabase>
#include <QtGui/QTableWidget>
#include <QtGui/QPushButton>
#include "tester.h"
using namespace std;
int main(int argc, char **argv)
{
QApplication app (argc, argv);
Tester tester;
tester.init();
tester.show();
return app.exec();
}
Tester::Tester()
{
model = new QSqlQueryModel();
meineView = new QTableView();
//database = new QSqlDatabase();
}
Tester::~Tester()
{
}
void Tester::init()
{
this->setGeometry(500,500,400,350);
meineView->setGeometry(QRect(20, 100, 361, 191));
database = QSqlDatabase::addDatabase("QMYSQL", "conn1");
//database->addDatabase("QMYSQL", "conn1");
database.setHostName("127.0.0.1");
database.setPort(3306);
database.setDatabaseName( "mydb" );
database.setUserName("root");
database.setPassword("testpasswort");
if ( !database.open() )
{
qDebug("Couldn't open DB");
}
QPushButton* btnaddtotable = new QPushButton( "Load",this);
btnaddtotable->setGeometry(50,20,100,40);
btnaddtotable->show();
QObject::connect ( btnaddtotable, SIGNAL ( clicked() ), this , SLOT(pushButtonClicked())) ;
}
void Tester::pushButtonClicked()
{
if (database.open() )
{
model->setQuery("SELECT id, Nachname, Vorname, Ort FROM testtable");
model->setHeaderData(0, Qt::Horizontal, tr("ID"));
model->setHeaderData(1, Qt::Horizontal, tr("Nachnamme"));
model->setHeaderData(2, Qt::Horizontal, tr("Vorname"));
model->setHeaderData(3, Qt::Horizontal, tr("Ort"));
} else
{
qDebug("Nicht geöffnet");
}
meineView->setModel(model);
}