⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 initdb.h

📁 奇趣公司比较新的qt/emd版本
💻 H
字号:
/******************************************************************************** Copyright (C) 2005-2007 Trolltech ASA. All rights reserved.**** This file is part of the demonstration applications of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef INITDB_H#define INITDB_H#include <QtSql>void addBook(QSqlQuery &q, const QString &title, int year, const QVariant &authorId,             const QVariant &genreId, int rating){    q.addBindValue(title);    q.addBindValue(year);    q.addBindValue(authorId);    q.addBindValue(genreId);    q.addBindValue(rating);    q.exec();}QVariant addGenre(QSqlQuery &q, const QString &name){    q.addBindValue(name);    q.exec();    return q.lastInsertId();}QVariant addAuthor(QSqlQuery &q, const QString &name, const QDate &birthdate){    q.addBindValue(name);    q.addBindValue(birthdate);    q.exec();    return q.lastInsertId();}QSqlError initDb(){    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");    db.setDatabaseName(":memory:");    if (!db.open())        return db.lastError();    QStringList tables = db.tables();    if (tables.contains("books", Qt::CaseInsensitive)        && tables.contains("authors", Qt::CaseInsensitive))        return QSqlError();    QSqlQuery q;    if (!q.exec(QLatin1String("create table books(id integer primary key, title varchar, author integer, genre integer, year integer, rating integer)")))        return q.lastError();    if (!q.exec(QLatin1String("create table authors(id integer primary key, name varchar, birthdate date)")))        return q.lastError();    if (!q.exec(QLatin1String("create table genres(id integer primary key, name varchar)")))        return q.lastError();    if (!q.prepare(QLatin1String("insert into authors(name, birthdate) values(?, ?)")))        return q.lastError();    QVariant asimovId = addAuthor(q, QLatin1String("Isaac Asimov"), QDate(1920, 2, 1));    QVariant greeneId = addAuthor(q, QLatin1String("Graham Greene"), QDate(1904, 10, 2));    QVariant pratchettId = addAuthor(q, QLatin1String("Terry Pratchett"), QDate(1948, 4, 28));    if (!q.prepare(QLatin1String("insert into genres(name) values(?)")))        return q.lastError();    QVariant sfiction = addGenre(q, QLatin1String("Science Fiction"));    QVariant fiction = addGenre(q, QLatin1String("Fiction"));    QVariant fantasy = addGenre(q, QLatin1String("Fantasy"));    if (!q.prepare(QLatin1String("insert into books(title, year, author, genre, rating) values(?, ?, ?, ?, ?)")))        return q.lastError();    addBook(q, QLatin1String("Foundation"), 1951, asimovId, sfiction, 3);    addBook(q, QLatin1String("Foundation and Empire"), 1952, asimovId, sfiction, 4);    addBook(q, QLatin1String("Second Foundation"), 1953, asimovId, sfiction, 3);    addBook(q, QLatin1String("Foundation's Edge"), 1982, asimovId, sfiction, 3);    addBook(q, QLatin1String("Foundation and Earth"), 1986, asimovId, sfiction, 4);    addBook(q, QLatin1String("Prelude to Foundation"), 1988, asimovId, sfiction, 3);    addBook(q, QLatin1String("Forward the Foundation"), 1993, asimovId, sfiction, 3);    addBook(q, QLatin1String("The Power and the Glory"), 1940, greeneId, fiction, 4);    addBook(q, QLatin1String("The Third Man"), 1950, greeneId, fiction, 5);    addBook(q, QLatin1String("Our Man in Havana"), 1958, greeneId, fiction, 4);    addBook(q, QLatin1String("Guards! Guards!"), 1989, pratchettId, fantasy, 3);    addBook(q, QLatin1String("Night Watch"), 2002, pratchettId, fantasy, 3);    addBook(q, QLatin1String("Going Postal"), 2004, pratchettId, fantasy, 3);    return QSqlError();}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -