我有QSqlTableModel和一些表,让我们假设它是一个
model->setTable("Person");
我还有QDataWidgetMapper,它将一些小部件(lineedits等)映射到模型中的相应列。
所以问题出在QDateEdit
元素中。
mapper->addMapping(birthEdit, Person_Birthdate);
当我在birthEdit
(QDateEdit
)中更改日期时,在相应的表中实际上没有更改这些值,因为它们以不同的格式存储,我也收到错误:
"QODBCResult::exec: unable to bind variable: "[Microsoft][ODBC SQL Server Driver]...".
数据库中的日期存储在“yyyy-MM-dd”中,而QDateEdit
则将日期存储在另一个中(我猜)。据我所知QDataWidgetMapper
使用映射小部件中的USER属性来获取/设置值。
如何解决我的问题?
答案 0 :(得分:2)
根据following page,您有两种方法:
子类QSqlRelationalDelegate并在setEditorData和setModelData方法中进行适当的更改。
扩展QDateEdit并使其处理时间戳数据并转换为QDate对象。