examples/sql/relationaltablemodel/relationaltablemodel.cpp File Reference

#include <QtGui>
#include <QtSql>
#include "../connection.h"

Include dependency graph for relationaltablemodel.cpp:

Go to the source code of this file.

Functions

void initializeModel (QSqlRelationalTableModel *model)
QTableViewcreateView (const QString &title, QSqlTableModel *model)
void createRelationalTables ()
int main (int argc, char *argv[])


Function Documentation

void createRelationalTables (  ) 

Definition at line 54 of file relationaltablemodel.cpp.

References QSqlQuery::exec().

Referenced by main().

00055 {
00056     QSqlQuery query;
00057     query.exec("create table employee(id int, name varchar(20), city int, country int)");
00058     query.exec("insert into employee values(1, 'Espen', 5000, 47)");
00059     query.exec("insert into employee values(2, 'Harald', 80000, 49)");
00060     query.exec("insert into employee values(3, 'Sam', 100, 1)");
00061 
00062     query.exec("create table city(id int, name varchar(20))");
00063     query.exec("insert into city values(100, 'San Jose')");
00064     query.exec("insert into city values(5000, 'Oslo')");
00065     query.exec("insert into city values(80000, 'Munich')");
00066 
00067     query.exec("create table country(id int, name varchar(20))");
00068     query.exec("insert into country values(1, 'USA')");
00069     query.exec("insert into country values(47, 'Norway')");
00070     query.exec("insert into country values(49, 'Germany')");
00071 }

Here is the call graph for this function:

QTableView* createView ( const QString title,
QSqlTableModel model 
)

Definition at line 45 of file relationaltablemodel.cpp.

References QAbstractItemView::setItemDelegate(), and QTableView::setModel().

00046 {
00047     QTableView *view = new QTableView;
00048     view->setModel(model);
00049     view->setItemDelegate(new QSqlRelationalDelegate(view));
00050     view->setWindowTitle(title);
00051     return view;
00052 }

Here is the call graph for this function:

void initializeModel ( QSqlRelationalTableModel model  ) 

Definition at line 29 of file relationaltablemodel.cpp.

References Qt::Horizontal, QSqlTableModel::OnManualSubmit, QSqlRelationalTableModel::select(), QSqlTableModel::setEditStrategy(), QSqlQueryModel::setHeaderData(), QSqlRelationalTableModel::setRelation(), and QSqlRelationalTableModel::setTable().

00030 {
00031     model->setTable("employee");
00032 
00033     model->setEditStrategy(QSqlTableModel::OnManualSubmit);
00034     model->setRelation(2, QSqlRelation("city", "id", "name"));
00035     model->setRelation(3, QSqlRelation("country", "id", "name"));
00036 
00037     model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
00038     model->setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));
00039     model->setHeaderData(2, Qt::Horizontal, QObject::tr("City"));
00040     model->setHeaderData(3, Qt::Horizontal, QObject::tr("Country"));
00041 
00042     model->select();
00043 }

Here is the call graph for this function:

int main ( int  argc,
char *  argv[] 
)

Definition at line 73 of file relationaltablemodel.cpp.

References createConnection(), createRelationalTables(), createView(), QApplication::exec(), initializeModel(), and QWidget::show().

00074 {
00075     QApplication app(argc, argv);
00076     if (!createConnection())
00077         return 1;
00078     createRelationalTables();
00079 
00080     QSqlRelationalTableModel model;
00081 
00082     initializeModel(&model);
00083 
00084     QTableView *view = createView(QObject::tr("Relational Table Model"), &model);
00085     view->show();
00086 
00087     return app.exec();
00088 }

Here is the call graph for this function:


Generated on Thu Mar 15 12:09:03 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1