2

我有带有一些表的 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 属性来获取/设置值。

我该如何解决我的问题?

4

1 回答 1

2

根据以下页面,您有两种方法可以采用:

  • 子类 QSqlRelationalDelegate 并在 setEditorData 和 setModelData 方法中进行适当的更改。

  • 扩展 QDateEdit 并使其处理时间戳数据并转换为 QDate 对象。

于 2014-01-06T01:44:32.560 回答