SQL und Table View Prob

Alles rund um die Programmierung mit Qt
Antworten
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

SQL und Table View Prob

Beitrag von mdmr »

Wenn ich in der Mainfunktion alles mache funktioniert alles Problemlos

:

Code: Alles auswählen

#include <QtGui>
#include <QtSql>
#include <QDebug>


int main(int argc, char* argv[]){
    QApplication app(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");


    db.setHostName("LAPPI\\SQLEXPRESS");
    db.setDatabaseName("LPWD");
   

    if (!db.open()){
        QSqlError err =db.lastError();
       QMessageBox::information(0, QObject::tr("Fehler"), err.text());
        return 1;
           }

QSqlTableModel model;
model.setTable("Sorte");
model.select();
model.setEditStrategy(QSqlTableModel::OnFieldChange);
tableView.setModel(&model);
tableView.setWindowTitle("SQL-Demo");
tableView.show();
return app.exec();

}
Erstelle ich im Designer das ganze und Verbinde einen Button mit Slot/Signal eigner Slot sehe ich im Table View nur noch einen grauen Rand , da wo Colum und Row Header seien müßten. Einträge sind gar nicht zu sehen.
Die DB Verbindung klappt problemlos beim Click Event.

Was mach ich da falsch ?

Hier aus dem Headerfile =

Code: Alles auswählen



private slots:
    int verbinde();
Und aus dem cpp

Code: Alles auswählen

connect (ui->PBverbinden, SIGNAL(clicked()), this , SLOT(verbinde()));

int MainWindow::verbinde(){

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
   db.setHostName(ui->LEserver->text());
   db.setDatabaseName(ui->LEsdn->text());

   if(!db.open()){
       QSqlError err = db.lastError();
                       QMessageBox::information(0, QObject::tr("Fehler"), err.text());
       return 1;
   }

   QSqlTableModel Model;


   Model.setTable("Sort");
   Model.select();
   Model.setEditStrategy(QSqlTableModel::OnFieldChange);
   ui->TVsorten->setModel(&Model);
   ui->TVsorten->setWindowTitle("Sort");
    ui->TVsorten->update();
   

}
TSS
Beiträge: 73
Registriert: 24. November 2009 15:40
Kontaktdaten:

Beitrag von TSS »

Code: Alles auswählen

QSqlTableModel Model; 
ist eine lokale Variable in der Funktion verbinde(). Was passiert also, wenn die Funktion wieder verlassen wird?
mdmr
Beiträge: 18
Registriert: 4. April 2010 15:01

Beitrag von mdmr »

Thx ,
mach doch Sinn ab und an mal ne Mütze Schlaf nu nehmen zwichendurch. :oops:
Antworten