• 5469阅读
  • 1回复

怎样取得QSqlTableModel中的被编辑过的模型索引? [复制链接]

上一主题 下一主题
离线kytexzy
 

只看楼主 倒序阅读 楼主  发表于: 2006-12-29
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
当我把QSqlTableModel的EditStrategy设为OnManualSubmit时,要调用submitAll()才能把缓存的改动提交,请问在submitAll()中我们怎样取得被编辑过的项目的模型索引呢?
[ 此贴被XChinux在2007-01-07 17:25重新编辑 ]
try to find forgiveness for yourself and forgive others
离线XChinux

只看该作者 1楼 发表于: 2007-01-07
看看下面的代码试试:

void CompanyDialog::on_table_beforeUpdate(int row, QSqlRecord &record)
{
   if (record.isNull("pccode") == false && record.value("pccode").toString() == "")
   {
       QMessageBox::information(this, "提示信息", "计算机代码不能为空且必须唯一", "确定");
       record.setGenerated("pccode", false);
   }
   if (record.isNull("pname") == false && record.value("pname").toString() == "")
   {
       QMessageBox::information(this, "提示信息", "扣缴义务人名称不能为空且必须唯一", "确定");
       record.setGenerated("pname", false);
   }
}
void CompanyDialog::on_table_beforeInsert(QSqlRecord &record)
{
   if (record.value("pccode").toString() == "" || record.value("pname").toString() == "")
   {
       QMessageBox::information(this, "提示信息", "计算机代码和扣缴义务人名称不能为空且必须唯一", "确定");
       record.clear();
       table.removeRow(table.rowCount() - 1);
   }
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个