ich versuche auf eine Postgres-Datenbank zuzugreifen.
Der Beipielcode, den ich als Vorlage genommen hat, tut dies direkt in der main. Das funktioniert auch und öffnet eine Tabelle, die die Daten darstellt. Das funktioniert also...
hier die main: (der Datenbankteil zur Zeit auskommentiert)
Code: Alles auswählen
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QtGui>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
/*
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("B6");
db.setUserName("postgres");
db.setPassword("postgres");
if (!db.open())
{
QSqlError err = db.lastError();
QMessageBox::information(0, QObject::tr("Fehler"), err.text());
return 1;
}
QTableView tableView;
QSqlTableModel model;
model.setTable("gearset");
model.select();
model.setEditStrategy(QSqlTableModel::OnFieldChange);
tableView.setModel(&model);
tableView.setWindowTitle("meine erste Datenbank");
tableView.show();
return a.exec();
*/
}
Code: Alles auswählen
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtGui>
#include <QtSql>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName("localhost");
db.setDatabaseName("B6");
db.setUserName("postgres");
db.setPassword("postgres");
if (!db.open())
{
QSqlError err = db.lastError();
QMessageBox::information(0, QObject::tr("Fehler"), err.text());
}
QSqlTableModel model;
model.setTable("gearset");
model.select();
model.setEditStrategy(QSqlTableModel::OnFieldChange);
ui->tableView->setModel(&model);
ui->tableView->show();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
Aber die Tabelle bleibt in diesem Fall leider leer.
Weiss vielleicht jemand Rat?