×
Namespaces

Variants
Actions
(Difference between revisions)

Creating a database table in Qt

From Nokia Developer Wiki
Jump to: navigation, search
tepaa (Talk | contribs)
(Created page with '{{CodeSnippet |id= |platform=Qt |devices=Nokia 5800 eXpressMusic, Nokia N900 |category=Qt |subcategory=Database |creationdate=September 9, 2009 |keywords=QSqlDatabase, QSQlite, Q…')
 
tepaa (Talk | contribs)
Line 14: Line 14:
  
 
Table person has following columns
 
Table person has following columns
* id (int primary key)
+
* id (integer primary key), this is autoincrement field http://www.sqlite.org/autoinc.html
 
* firstname (varchar(20))
 
* firstname (varchar(20))
 
* lastname (varchar(30))
 
* lastname (varchar(30))
* age (int)
+
* age (integer)
  
  
Line 76: Line 76:
 
         QSqlQuery query;
 
         QSqlQuery query;
 
         ret = query.exec("create table person "
 
         ret = query.exec("create table person "
                   "(id int primary key, "
+
                   "(id integer primary key, "
 
                   "firstname varchar(20), "
 
                   "firstname varchar(20), "
 
                   "lastname varchar(30), "
 
                   "lastname varchar(30), "
                   "age int)");
+
                   "age integer)");
  
 
         }
 
         }

Revision as of 15:34, 9 September 2009

Article Metadata
Tested with
Devices(s): Nokia 5800 eXpressMusic, Nokia N900
Compatibility
Platform(s): Qt
Symbian
Article
Keywords: QSqlDatabase, QSQlite, QSqlError, QSqlQuery
Created: (09 Sep 2009)
Last edited: tepaa (09 Sep 2009)

Contents

Overview

This example shows you how to create 'person' table into (SQLite) database in Qt.

Table person has following columns


Preconditions

  • Qt is installed on your platform


    • Maemo
      • More information about Qt on Maemo can be found here: Qt4 Maemo port

Maemo SQLite development needs following packages to be installed:

  • libqt4-sql
  • libqt4-sql-sqlit
  • libsqlite3-0
  • libsqlite3-dev


Header

#include <QObject>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
 
class DatabaseManager : public QObject
{
public:
DatabaseManager(QObject *parent = 0);
~DatabaseManager();
 
public:
bool openDB();
bool createPersonTable();
 
private:
QSqlDatabase db;
};


Source

bool DatabaseManager::createPersonTable()
{
// Create table "person"
bool ret = false;
if (db.isOpen())
{
QSqlQuery query;
ret = query.exec("create table person "
"(id integer primary key, "
"firstname varchar(20), "
"lastname varchar(30), "
"age integer)");
 
}
return ret;
}
bool DatabaseManager::openDB()
{
// Find QSLite driver
db = QSqlDatabase::addDatabase("QSQLITE");
 
#ifdef Q_OS_LINUX
// in Maemo we create database into memory because
// it does not work from file
db.setDatabaseName(":memory:");
#else
// Set database to be created into file.
// In Symbian file exists in the application private folder
db.setDatabaseName("my.db.sqlite");
#endif
 
// Open databasee
return db.open();
}


Postconditions

Database table "person" created.


See also

759 page views in the last 30 days.
×