Namespaces
Variants
Actions
(Difference between revisions)

Creating a database table in Qt

Jump to: navigation, search
m (Removed protection from "CS001505 - Creating a database table in Qt")
m (Hamishwillee - Bot update - Merge KB into wiki)
Line 1: Line 1:
{{KBCS}}
+
{{ArticleMetaData <!-- v1.2 -->
{{ArticleMetaData
+
|id=CS001505
+
|platform=Qt
+
|devices=Nokia 5800 XpressMusic, Nokia N900
+
|category=Qt
+
|subcategory=Database
+
|creationdate=November 24, 2009
+
|keywords=QSqlDatabase, QSQlite, QSqlError, QSqlQuery
+
 
+
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
 
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
+
|devices= Nokia 5800 XpressMusic, Nokia N900
|devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) -->
+
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
+
|platform= Qt
|capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) -->
+
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
|author=[[User:Tepaa]]
+
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
 +
|signing= <!-- Empty or one of Self-Signed, DevCert, Manufacturer -->
 +
|capabilities= <!-- Capabilities required by the article/code example (e.g. Location, NetworkServices. -->
 +
|keywords= QSqlDatabase, QSQlite, QSqlError, QSqlQuery
 +
|language= <!-- Language category code for non-English topics - e.g. Lang-Chinese -->
 +
|translated-by= <!-- [[User:XXXX]] -->
 +
|translated-from-title= <!-- Title only -->
 +
|translated-from-id= <!-- Id of translated revision -->
 +
|review-by= <!-- After re-review: [[User:username]] -->
 +
|review-timestamp= <!-- After re-review: YYYYMMDD -->
 +
|update-by= <!-- After significant update: [[User:username]]-->
 +
|update-timestamp= <!-- After significant update: YYYYMMDD -->
 +
|creationdate= 20090909
 +
|author= [[User:Tepaa]]
 +
<!-- The following are not in current metadata -->
 +
|subcategory= Database
 +
|id= CS001505
 
}}
 
}}
  
Line 33: Line 40:
 
* Qt is installed on your platform.
 
* Qt is installed on your platform.
 
** S60:
 
** S60:
*** Download Qt for S60 release from here: [http://developer.qt.nokia.com/wiki/Support_for_Symbian Qt for S60 pre-release]
+
*** Download Qt release from here: [http://developer.qt.nokia.com/wiki/Support_for_Symbian Qt pre-release]
*** Install Qt for S60: [[Installing Qt on S60]]
+
*** Install Qt: [[How to Install Qt]]
 
*** Check this link for installation guide: [http://developer.qt.nokia.com/wiki/Support_for_Symbiandoc/install-s60.html How to install the package]
 
*** Check this link for installation guide: [http://developer.qt.nokia.com/wiki/Support_for_Symbiandoc/install-s60.html How to install the package]
*** Qt for S60 Tower release has SQLite support. The required libraries are built into the Qt release.
+
*** Qt Tower release has SQLite support. The required libraries are built into the Qt release.
 
** Maemo:
 
** Maemo:
 
*** More information about Qt on Maemo can be found here: [http://qt4.garage.maemo.org/ Qt4 Maemo port]
 
*** More information about Qt on Maemo can be found here: [http://qt4.garage.maemo.org/ Qt4 Maemo port]
Line 125: Line 132:
 
==See also==
 
==See also==
  
* [[CS001504 - Creating an SQLite database in Qt]]
+
* [[Creating an SQLite database in Qt]]
 
* [[CS001506 - Inserting a row into a database in Qt]]
 
* [[CS001506 - Inserting a row into a database in Qt]]
 
* [[CS001507 - Searching for data in a database in Qt]]
 
* [[CS001507 - Searching for data in a database in Qt]]
Line 135: Line 142:
 
* [http://doc.trolltech.com/4.5/qtsql.html QtSql module]
 
* [http://doc.trolltech.com/4.5/qtsql.html QtSql module]
  
[[Category:Qt]][[Category:Code Examples]][[Category: UI]][[Category:Code Snippet]][[Category:MeeGo]] [[Category:Symbian]]
+
[[Category:Qt]][[Category:Code Snippet]][[Category: UI]][[Category:Code Snippet]][[Category:MeeGo]] [[Category:Symbian]]

Revision as of 07:35, 13 June 2012

Article Metadata

Tested with
Devices(s): Nokia 5800 XpressMusic, Nokia N900

Compatibility
Platform(s): Qt

Article
Keywords: QSqlDatabase, QSQlite, QSqlError, QSqlQuery
Created: tepaa (09 Sep 2009)
Last edited: hamishwillee (13 Jun 2012)

Contents

Overview

This example shows you how to create a 'person' table in an SQLite database in Qt.

The table 'person' has the following columns:


Preconditions


For Maemo SQLite development, the following packages must be installed:

  • libqt4-sql
  • libqt4-sql-sqlite
  • 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

Create the 'person' table.

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;
}

The rest of the code:

bool DatabaseManager::openDB()
{
// Find QSLite driver
db = QSqlDatabase::addDatabase("QSQLITE");
 
#ifdef Q_OS_LINUX
// NOTE: We have to store database file into user home folder in Linux
QString path(QDir::home().path());
path.append(QDir::separator()).append("my.db.sqlite");
path = QDir::toNativeSeparators(path);
db.setDatabaseName(path);
#else
// NOTE: File exists in the application private folder, in Symbian Qt implementation
db.setDatabaseName("my.db.sqlite");
#endif
 
// Open databasee
return db.open();
}


Postconditions

The database table 'person' is created.


See also

816 page views in the last 30 days.
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved