PDA

View Full Version : QDataWidgetMapper and QSqlQueryModel



cyberduck
17th December 2013, 10:39
Hello,

how can i display some values from my database and write it back?

That is my QSqlQueryModel

QSqlQueryModel *model = new QSqlQueryModel();
model->setQuery("SELECT * FROM Experiment"
"INNER JOIN Temperatur ON Experiment.ExperimentID = Temperatur.ExperimentID"
"INNER JOIN Qualities ON Experiment.ExperimentID = Qualities.ExperimentID");

I set the model to a QDataWidgetMapper and add mapping for my QSliders

QDataWidgetMapper *mapper = new QDataWidgetMapper(this);
mapper->setModel(model);
mapper->setItemDelegate(new QSqlRelationalDelegate(this));
mapper->addMapping(ui.qslider_min, model->record(int_row)->indexOf("min"));
mapper->addMapping(ui.qslider_max, model->record(int_row)->indexOf("max"));
mapper->toFirst();

The submit fails every time

mapper->submit();

How can i write back the slider-values to my database? Can you help me please?

Thanks in Advance

anda_skoa
17th December 2013, 12:39
When you say submit() fails, what is the error you are getting?

Cheers,
_

cyberduck
20th December 2013, 08:04
Hi,

sorry for my bad english! The submit fails not directly, mapper->submit() is true.

The question is, how can i write back the values to my database?

Can you help me please?

Thanks in advance.

anda_skoa
20th December 2013, 10:21
Ah!

The documentation of QSqlQueryModel says: "The model is read-only by default. To make it read-write, you must subclass it and reimplement setData() and flags()."

Cheers,
_