标题:二十七、Qt数据库(七)QSqlRelationalTableModel(原创)
作者:yafei86
日期:2010-03-26 17:51
内容:
声明:本文原创于yafeilinux的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。
讲完QSqlTableModel了,我们这次讲这个类的扩展类QSqlRelationalTableModel,它们没有太大的不同,唯一的就是后者在前者的基础之上添加了外键(或者叫外码)的支持。
QSqlRelationalTableModel,该类为单张的数据库表提供了一个可编辑的数据模型,它支持外键。
我们还是新建Qt4 Gui Application工程,我这里工程名为relationalTableModel ,然后选中QtSql模块,Base class选QWidget。工程建好后,添加C++ Header File ,命名为database.h,更改其内容如下:
#ifndef DATABASE_H
#define DATABASE_H
#include
#include
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(!db.open()) return false;
QSqlQuery query;
query.exec("create table student (id int primary key, name vchar,course int)");
query.exec("insert into student values (1,'yafei0',1)");
query.exec("insert into student values (2,'yafei1',1)");
query.exec("insert into student values (3,'yafei2',2)");
query.exec("create table course (id int primary key, name vchar, teacher vchar)");
query.exec("insert into course values (1,'Math','yafeilinux1')");
query.exec("insert into course values (2,'English','yafeil ..