免费网站后台管理系统模板下载青岛网站建设信息公示
web/
2025/9/26 13:27:28/
文章来源:
免费网站后台管理系统模板下载,青岛网站建设信息公示,深圳外贸网站建设设计公司,住房和建设局一、
1.1 QSqlRelationalTableModel继承自QSqlTableModel#xff0c;并且对其进行了扩展#xff0c;提供了对外键的支持。一个外键就是一个表中的一个字段 和 其他表中的主键字段之间的一对一的映射。例如#xff0c;“studInfo”表中的departID字段对应的是“departments…一、
1.1 QSqlRelationalTableModel继承自QSqlTableModel并且对其进行了扩展提供了对外键的支持。一个外键就是一个表中的一个字段 和 其他表中的主键字段之间的一对一的映射。例如“studInfo”表中的departID字段对应的是“departments”表中的departID字段那么就称字段departID是一个外键。因为这里的departID字段的值是一些数字这样的显示很不友好使用关系表格模型就可以将它显示为“departments”表中的department字段的值。 1.2 使用“代码字段”的意义
1major和department 字段都是“汉字”不仅 存储空间占用多而且 “汉字可能会被修改” 2如果使用“代码字段”标识 不仅占用空间小而且 修改汉字并不影响对应的 数值标识departID。 如果不使用数值标识每个表中都使用department的汉字。那么每个表中的department汉字都要修改 1.3
1departments\majors表专业代码字段departID\majorID 对应的数据表 studInfo表具有包含代码字段departID\majorID的数据表
2QSqlRelationalTableModel类专门用来编辑这种具有代码字段的数据表。使用数值代码标识汉字文字的字段 使用QSqlRelationalTableModel作为tableView的数据源显示和编辑studInfo数据表具有代码字段 二、
//打开数据表tabModel new QSqlRelationalTableModel(this, DB);tabModel-setTable(studInfo); //设置数据表studInfotabModel-setEditStrategy(QSqlTableModel::OnManualSubmit); //OnManualSubmit , OnRowChangetabModel-setSort(0,Qt::AscendingOrder);tabModel-setHeaderData(0,Qt::Horizontal,学号);tabModel-setHeaderData(1,Qt::Horizontal,姓名);tabModel-setHeaderData(2,Qt::Horizontal,性别);tabModel-setHeaderData(3,Qt::Horizontal,学院);tabModel-setHeaderData(4,Qt::Horizontal,专业);//列号索引从0开始且不算隐藏列rowid列//setRelation在2个表之间建立关系//设置代码字段的查询关系数据表//指定表studInfo的第3列是一个外键将它映射为表departments的departID字段并且视图应该在第3列显示department字段tabModel-setRelation(3, QSqlRelation(departments,departID,department)); //学院//setRelation在“studInfo”表 和 “majors”表之间建立关系//指定表studInfo的第4列是一个外键将它和表majors的majorID字段建立映射关系并且视图应该在第4列显示major字段tabModel-setRelation(4, QSqlRelation(majors,majorID,major));//专业theSelection new QItemSelectionModel(tabModel);connect(theSelection,SIGNAL(currentChanged(QModelIndex,QModelIndex)),this,SLOT(on_currentChanged(QModelIndex,QModelIndex)));ui-tableView-setModel(tabModel);//设置模型ui-tableView-setSelectionModel(theSelection);//设置选择模型ui-tableView-setItemDelegate(new QSqlRelationalDelegate(ui-tableView)); //为关系型字段设置缺省代理组件
//setRelation在2个表之间建立关系设置代码字段的查询关系数据表 //指定表studInfo的第3列(departID)是一个外键将它映射为表departments的departID字段并且视图应该在第3列显示department字段 tabModel-setRelation(3, QSqlRelation(departments,departID,department)); //学院
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82216.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!