用TableView编辑数据,如果数据不符合要求,写入数据库失败怎么知道

OryJuVog 2013-06-13 08:00:58
例如:
QSqlRelationalTableModel *tableModel = new QSqlRelationalTableModel(tableView, db);
tableModel->setEditStrategy(QSqlRelationalTableModel::OnFieldChange);
。。。
tableModel->select();
tableView->setModel(tableModel);
tableView->setItemDelegate(new QSqlRelationalDelegate(tableView));

在tableview修改数据时,如果数据不符合要求,写入数据库失败怎么知道。我想要写入失败时给个提示,但是现在只能在调试时,qtcreator那里会提示
...全文
125 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdwx 2013-06-14
  • 打赏
  • 举报
回复
就是说,数据要在写入数据库之前检测是否合格,不要全部推给数据库。 除非你对你用的数据库非常了解。否则写入失败,或者只写入一部分数据(字符串数据,这个还是有可能的)还不报错。
luoning1217 2013-06-14
  • 打赏
  • 举报
回复
有些检查工作放在界面做
OryJuVog 2013-06-13
  • 打赏
  • 举报
回复
引用 5 楼 jdwx1 的回复:
[quote=引用 4 楼 netwp 的回复:] 为什么不用代理将输入数据做限制
+1 这才是正确的办法。[/quote] 不懂求指教
OryJuVog 2013-06-13
  • 打赏
  • 举报
回复
引用 4 楼 netwp 的回复:
为什么不用代理将输入数据做限制
不懂求指教
jdwx 2013-06-13
  • 打赏
  • 举报
回复
引用 4 楼 netwp 的回复:
为什么不用代理将输入数据做限制
+1 这才是正确的办法。
netwp 2013-06-13
  • 打赏
  • 举报
回复
为什么不用代理将输入数据做限制
OryJuVog 2013-06-13
  • 打赏
  • 举报
回复
引用 1 楼 ppdayz 的回复:
if (model.lastError()->isValid()){ emit .... or do something qDebug() << model->lastError(); }
但是我要在哪里添加这段代码呢 我是OnFieldChange这种方式的。。。
ppdayz 2013-06-13
  • 打赏
  • 举报
回复
指针啥的可能用错了,反正就差不多这个意思
ppdayz 2013-06-13
  • 打赏
  • 举报
回复
if (model.lastError()->isValid()){ emit .... or do something qDebug() << model->lastError(); }

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧