代码之家  ›  专栏  ›  技术社区  ›  karenrojaz27

当数据在TableView中发生更改时,如何保存updated_date?

  •  1
  • karenrojaz27  · 技术社区  · 11 年前

    我试图将QSqlTableModel与QTableView一起使用,但我想隐藏updated_date和created_date这两列,这很容易,但我希望用户可以在TableView中编辑数据,当完成(或提交数据时)时,updated_date会自动更新到当前日期时间。我需要程序来完成,而不是从数据库引擎。 要做到这一点,我应该遵循哪些步骤?我一直在考虑实现setData方法,但我不知道如何实现。 非常感谢您的时间和帮助。

    1 回复  |  直到 11 年前
        1
  •  1
  •   VVV    11 年前

    你可以重新实现 setData() 您的功能 QSqlTableModel subclass和make如下:

    virtual bool YourModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
    {
        if (index.column() != updated_date) {
            QSqlTableModel::setData(index(index.row(), updated_date), QDate::currentDate(), role);      
        }
    
        return QSqlTableModel::setData(index, value, role);
    }
    

    但我还是建议您使用数据库触发器来完成此任务。

    推荐文章