[Qt-interest] simple QSqlTableModel problem

Israel Brewster israel at frontierflying.com
Thu Dec 18 18:08:07 CET 2008


One additional piece of information here: if I use a QSqlQuery to  
execute a command directly, it works fine. It's just the  
QSqlTableModel that appears to be messed up, and only when sending  
data back to the database- it caches the changes fine until it tries  
to submit them.

-----------------------------------------------
Israel Brewster
Computer Support Technician
Frontier Flying Service Inc.
5245 Airport Industrial Rd
Fairbanks, AK 99709
(907) 450-7250 x293
-----------------------------------------------


On Dec 17, 2008, at 2:48 PM, Israel Brewster wrote:

> I have done this in production several times, but this time around I
> am having problems. Specifically, I have a simple application that
> just opens a single window containing a QTableView, set to a
> QSqlTableModel. The database is a local SQLite database. The
> QTableView loads and displays the data just fine, but when I make a
> change and hit enter, the change is not saved- the view just refreshes
> to showing the same old data. The code I have is shown below. What am
> I missing? Using Qt 4.4.3 on Mac OS 10.5.5, static built from source.
> Thanks.
>
> In main.cpp:
>
> #include <QtGui/QApplication>
> #include "dataview.h"
> #include <QtGui>
> #include <QtSql>
>
> int main(int argc, char *argv[])
> {
>     QApplication a(argc, argv);
> 	QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
> 	db.setDatabaseName("/Users/israel/test.db");
> // removed error-checking code for compactness.
> 	dataView newView;
> 	newView.show();
>     return a.exec();
> }
>
> dataview.h:
>
> #ifndef DATAVIEW_H
> #define DATAVIEW_H
>
> #include "ui_Database.h"
> #include <QtSql>
>
> class dataView : public QDialog, private Ui::dataView
> {
>     Q_OBJECT
>
> public:
>     dataView();
>
> private:
>     QSqlTableModel dataModel;
> };
>
> #endif // DATAVIEW_H
>
>
> and finally, dataview.cpp:
>
> #include "dataview.h"
> #include <QtGui>
>
> dataView::dataView()
> {
>     setupUi(this);
>     dataModel.setTable("milage");
> // removed error-checking code for compactness.
>     dataModel.select();
> // removed error-checking code for compactness.
>     dataTable->setModel(&dataModel);
>     dataTable->resizeColumnsToContents();
> }
>
> -----------------------------------------------
> Israel Brewster
> Computer Support Technician
> Frontier Flying Service Inc.
> 5245 Airport Industrial Rd
> Fairbanks, AK 99709
> (907) 450-7250 x293
> -----------------------------------------------
>
>
> _______________________________________________
> Qt-interest mailing list
> Qt-interest at trolltech.com
> http://lists.trolltech.com/mailman/listinfo/qt-interest




More information about the Qt-interest-old mailing list