У меня есть 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]...".
Дата в базе данных хранится в «Гггг-ММ-дд» в то время как QDateEdit
возвращает дату в другом (я полагаю). Насколько я знаю QDataWidgetMapper
использует свойство USER в отображенном виджете, чтобы получить / установить значение.
Как я могу решить мою проблему?
У вас есть два подхода в соответствии с следующая страница:
Подкласс QSqlRelationalDelegate и внесите соответствующие изменения в методы setEditorData и setModelData.
Расширьте QDateEdit, сделайте так, чтобы он обрабатывал данные меток времени и преобразовывал их в объект QDate.
Других решений пока нет …