ich schreibe gerade eine Anwendung, die auf eine MYSQL-Datenbank zugreift. Ich habe mit dem Designer eine kleine GUI mit einem TableView und einem Button erzeugt. Den Tabelleninhalt möchte ich mit einem QSqlTableModel in dem TableView anzeigen lassen. Aber es wird nichts angezeigt. Eine Verbindung zur Datenbank wird hergestellt.
Das ganze mache ich derzeit im Konstruktor des Hauptfensters.
Code: Alles auswählen
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL3");
db.setDatabaseName("ijb");
db.setHostName("localhost");
db.setUserName("pierre");
db.setPassword("****");
if (!db->open())
{
QSqlError err = db->getError();
QMessageBox::information(0,"Nachricht",err.text());
}
QSqlTableModel model;
model.setTable("Mitarbeiter");
model.select();
model.setEditStrategy(QSqlTableModel::OnRowChange);
ui->tableView->setModel(&model);
}
Achso, ich hatte zu Testzwecken den Codeteil mit dem Model mal in einen Slot vom Hauptformular gesteckt, der bei clicken des Buttons aktiviert wurde. Dort konnte ich schon mal die Gitter des TableView sehen, die aber sofort wieder gelöscht wurden.
Daher vermute ich, dass das Ergebnis der Abfrage sofort nach dem Zeichnen der Tabelle wieder gelöscht wird.
Gruß
Pierre