#ifndef INITDB_H #define INITDB_H #include QSqlError initDb() { QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); // db.setDatabaseName(":memory:"); db.setDatabaseName("c:/sqlite/test.db"); if (!db.open()) return db.lastError(); QStringList tables = db.tables(); if (tables.contains("drivers", Qt::CaseInsensitive) && tables.contains("cars", Qt::CaseInsensitive)) return QSqlError(); QSqlQuery q; if (!q.exec(QLatin1String("create table drivers(id integer primary key, firstname varchar, lastname varchar)"))) return q.lastError(); if (!q.exec(QLatin1String("create table cars(id integer primary key, name varchar, drivers_id integer REFERENCES drivers(id))"))) return q.lastError(); if (!q.exec(QLatin1String("insert into drivers(firstname, lastname) values('Pietje', 'Puck')"))) return q.lastError(); if (!q.exec(QLatin1String("insert into drivers(firstname, lastname) values('Alexander', 'van Buuren')"))) return q.lastError(); if (!q.exec(QLatin1String("insert into drivers(firstname, lastname) values('Jan', 'Jansen')"))) return q.lastError(); if (!q.exec(QLatin1String("insert into cars(name, drivers_id) values('BWM 316', 3)"))) return q.lastError(); if (!q.exec(QLatin1String("insert into cars(name, drivers_id) values('Volvo 440', 2)"))) return q.lastError(); if (!q.exec(QLatin1String("insert into cars(name, drivers_id) values('Bugati Veyron', 1)"))) return q.lastError(); if (!q.exec(QLatin1String("insert into cars(name, drivers_id) values('VW polo', 3)"))) return q.lastError(); return QSqlError(); } #endif // INITDB_H