examples/sql/connection.h
changeset 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
-1:000000000000 0:1918ee327afb
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the examples of the Qt Toolkit.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:LGPL$
       
    10 ** No Commercial Usage
       
    11 ** This file contains pre-release code and may not be distributed.
       
    12 ** You may use this file in accordance with the terms and conditions
       
    13 ** contained in the Technology Preview License Agreement accompanying
       
    14 ** this package.
       
    15 **
       
    16 ** GNU Lesser General Public License Usage
       
    17 ** Alternatively, this file may be used under the terms of the GNU Lesser
       
    18 ** General Public License version 2.1 as published by the Free Software
       
    19 ** Foundation and appearing in the file LICENSE.LGPL included in the
       
    20 ** packaging of this file.  Please review the following information to
       
    21 ** ensure the GNU Lesser General Public License version 2.1 requirements
       
    22 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
       
    23 **
       
    24 ** In addition, as a special exception, Nokia gives you certain additional
       
    25 ** rights.  These rights are described in the Nokia Qt LGPL Exception
       
    26 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
       
    27 **
       
    28 ** If you have questions regarding the use of this file, please contact
       
    29 ** Nokia at qt-info@nokia.com.
       
    30 **
       
    31 **
       
    32 **
       
    33 **
       
    34 **
       
    35 **
       
    36 **
       
    37 **
       
    38 ** $QT_END_LICENSE$
       
    39 **
       
    40 ****************************************************************************/
       
    41 
       
    42 #ifndef CONNECTION_H
       
    43 #define CONNECTION_H
       
    44 
       
    45 #include <QMessageBox>
       
    46 #include <QSqlDatabase>
       
    47 #include <QSqlError>
       
    48 #include <QSqlQuery>
       
    49 
       
    50 /*
       
    51     This file defines a helper function to open a connection to an
       
    52     in-memory SQLITE database and to create a test table.
       
    53 
       
    54     If you want to use another database, simply modify the code
       
    55     below. All the examples in this directory use this function to
       
    56     connect to a database.
       
    57 */
       
    58 //! [0]
       
    59 static bool createConnection()
       
    60 {
       
    61     QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
       
    62     db.setDatabaseName(":memory:");
       
    63     if (!db.open()) {
       
    64         QMessageBox::critical(0, qApp->tr("Cannot open database"),
       
    65             qApp->tr("Unable to establish a database connection.\n"
       
    66                      "This example needs SQLite support. Please read "
       
    67                      "the Qt SQL driver documentation for information how "
       
    68                      "to build it.\n\n"
       
    69                      "Click Cancel to exit."), QMessageBox::Cancel);
       
    70         return false;
       
    71     }
       
    72 
       
    73     QSqlQuery query;
       
    74     query.exec("create table person (id int primary key, "
       
    75                "firstname varchar(20), lastname varchar(20))");
       
    76     query.exec("insert into person values(101, 'Danny', 'Young')");
       
    77     query.exec("insert into person values(102, 'Christine', 'Holand')");
       
    78     query.exec("insert into person values(103, 'Lars', 'Gordon')");
       
    79     query.exec("insert into person values(104, 'Roberto', 'Robitaille')");
       
    80     query.exec("insert into person values(105, 'Maria', 'Papadopoulos')");
       
    81 
       
    82     query.exec("create table offices (id int primary key,"
       
    83                                              "imagefile int,"
       
    84                                              "location varchar(20),"
       
    85                                              "country varchar(20),"
       
    86                                              "description varchar(100))");
       
    87     query.exec("insert into offices "
       
    88                "values(0, 0, 'Oslo', 'Norway',"
       
    89                "'Oslo is home to more than 500 000 citizens and has a "
       
    90                "lot to offer.It has been called \"The city with the big "
       
    91                "heart\" and this is a nickname we are happy to live up to.')");
       
    92     query.exec("insert into offices "
       
    93                "values(1, 1, 'Brisbane', 'Australia',"
       
    94                "'Brisbane is the capital of Queensland, the Sunshine State, "
       
    95                "where it is beautiful one day, perfect the next.  "
       
    96                "Brisbane is Australia''s 3rd largest city, being home "
       
    97                "to almost 2 million people.')");
       
    98     query.exec("insert into offices "
       
    99                "values(2, 2, 'Redwood City', 'US',"
       
   100                "'You find Redwood City in the heart of the Bay Area "
       
   101                "just north of Silicon Valley. The largest nearby city is "
       
   102                "San Jose which is the third largest city in California "
       
   103                "and the 10th largest in the US.')");
       
   104     query.exec("insert into offices "
       
   105                "values(3, 3, 'Berlin', 'Germany',"
       
   106                "'Berlin, the capital of Germany is dynamic, cosmopolitan "
       
   107                "and creative, allowing for every kind of lifestyle. "
       
   108                "East meets West in the metropolis at the heart of a "
       
   109                "changing Europe.')");
       
   110     query.exec("insert into offices "
       
   111                "values(4, 4, 'Munich', 'Germany',"
       
   112                "'Several technology companies are represented in Munich, "
       
   113                "and the city is often called the \"Bavarian Silicon Valley\". "
       
   114                "The exciting city is also filled with culture, "
       
   115                "art and music. ')");
       
   116     query.exec("insert into offices "
       
   117                "values(5, 5, 'Beijing', 'China',"
       
   118                "'Beijing as a capital city has more than 3000 years of "
       
   119                "history. Today the city counts 12 million citizens, and "
       
   120                "is the political, economic and cultural centre of China.')");
       
   121 
       
   122     query.exec("create table images (locationid int, file varchar(20))");
       
   123     query.exec("insert into images values(0, 'images/oslo.png')");
       
   124     query.exec("insert into images values(1, 'images/brisbane.png')");
       
   125     query.exec("insert into images values(2, 'images/redwood.png')");
       
   126     query.exec("insert into images values(3, 'images/berlin.png')");
       
   127     query.exec("insert into images values(4, 'images/munich.png')");
       
   128     query.exec("insert into images values(5, 'images/beijing.png')");
       
   129 
       
   130 
       
   131 
       
   132     return true;
       
   133 }
       
   134 //! [0]
       
   135 
       
   136 #endif