C++ QDataWidgetMapper和QDateEdit值
我有QSqlTableModel和一些表,让我们假设它是一个C++ QDataWidgetMapper和QDateEdit值,c++,qt,qtsql,qsqltablemodel,qdatetime,C++,Qt,Qtsql,Qsqltablemodel,Qdatetime,我有QSqlTableModel和一些表,让我们假设它是一个 model->setTable("Person"); 我还有QDataWidgetMapper,它可以将一些小部件(行编辑等)映射到模型中适当的列。 因此问题出在QDateEdit元素中 mapper->addMapping(birthEdit, Person_Birthdate); 当我在birthdedit(QDateEdit)中更改日期时,相应表中的值实际上没有更改,因为它们以不同的格式存储,我还收到一个错误:
model->setTable("Person");
我还有QDataWidgetMapper,它可以将一些小部件(行编辑等)映射到模型中适当的列。因此问题出在
QDateEdit
元素中
mapper->addMapping(birthEdit, Person_Birthdate);
当我在birthdedit
(QDateEdit
)中更改日期时,相应表中的值实际上没有更改,因为它们以不同的格式存储,我还收到一个错误:
"QODBCResult::exec: unable to bind variable: "[Microsoft][ODBC SQL Server Driver]...".
数据库中的日期存储在“yyyy-MM-dd”中,而QDateEdit
以另一种形式返回日期(我想是这样)。据我所知,QDataWidgetMapper
使用映射小部件中的用户属性来获取/设置值
我怎样才能解决我的问题 您有两种方法可供选择:
- 子类QSqlRelationalDelegate并在setEditorData和setModelData方法中进行适当更改
- 扩展QDateEdit并使其处理时间戳数据并转换为QDate对象