×
Namespaces

Variants
Actions
(Difference between revisions)

Creating a database table in Qt

From Nokia Developer Wiki
Jump to: navigation, search
copyeditor (Talk | contribs)
hamishwillee (Talk | contribs)
m (Text replace - "<code cpp>" to "<code cpp-qt>")
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{KBCS}}
+
{{ArticleMetaData <!-- v1.2 -->
{{CodeSnippet
+
|sourcecode= <!-- Link to example source code (e.g. [[Media:The Code Example ZIP.zip]]) -->
|id=CS001505
+
|installfile= <!-- Link to installation file (e.g. [[Media:The Installation File.sis]]) -->
|platform=Qt
+
|devices= Nokia 5800 XpressMusic, Nokia N900
|devices=Nokia 5800 XpressMusic, Nokia N900
+
|sdk= <!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) -->
|category=Qt
+
|platform= Qt
|subcategory=Database
+
|devicecompatability= <!-- Compatible devices (e.g.: All* (must have GPS) ) -->
|creationdate=November 24, 2009
+
|dependencies= <!-- Any other/external dependencies e.g.: Google Maps Api v1.0 -->
|keywords=QSqlDatabase, QSQlite, QSqlError, QSqlQuery  
+
|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 25: Line 40:
 
* Qt is installed on your platform.
 
* Qt is installed on your platform.
 
** S60:
 
** S60:
*** Download Qt for S60 release from here: [http://pepper.troll.no/s60prereleases/ 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://pepper.troll.no/s60prereleases/doc/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 42: Line 57:
 
==Header==
 
==Header==
  
<code cpp>
+
<code cpp-qt>
 
#include <QObject>
 
#include <QObject>
 
#include <QSqlDatabase>
 
#include <QSqlDatabase>
Line 67: Line 82:
  
 
Create the 'person' table.
 
Create the 'person' table.
<code cpp>
+
<code cpp-qt>
 
bool DatabaseManager::createPersonTable()
 
bool DatabaseManager::createPersonTable()
 
     {
 
     {
Line 87: Line 102:
  
 
The rest of the code:
 
The rest of the code:
<code cpp>
+
<code cpp-qt>
 
bool DatabaseManager::openDB()
 
bool DatabaseManager::openDB()
 
     {
 
     {
Line 117: 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]]
+
* [[Inserting a row into a database in Qt]]
* [[CS001507 - Searching for data in a database in Qt]]
+
* [[Searching for data in a database in Qt]]
* [[CS001508 - Deleting data from a database in Qt]]
+
* [[Deleting data from a database in Qt]]
* [[CS001509 - Selecting data from a database without using SQL statements in Qt]]
+
* [[Selecting data from a database without using SQL statements in Qt]]
* [[CS001510 - Using QDataWidgetMapper to show data from a database in Qt]]
+
* [[Using QDataWidgetMapper to show data from a database in Qt]]
  
 
* [http://www.w3schools.com/Sql/default.asp w3schools.com/Sql]
 
* [http://www.w3schools.com/Sql/default.asp w3schools.com/Sql]
 
* [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:Qt]][[Category:Code Snippet]][[Category: UI]][[Category:Code Snippet]][[Category:MeeGo Harmattan]] [[Category:Symbian]]

Latest revision as of 04:16, 11 October 2012

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

Contents

[edit] Overview

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

The table 'person' has the following columns:


[edit] Preconditions


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

  • libqt4-sql
  • libqt4-sql-sqlite
  • libsqlite3-0
  • libsqlite3-dev


[edit] 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;
};


[edit] 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();
}


[edit] Postconditions

The database table 'person' is created.


[edit] See also

This page was last modified on 11 October 2012, at 04:16.
645 page views in the last 30 days.