Creating a database table in Qt
hamishwillee
(Talk | contribs) m (Bot fixing redirect link) |
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot change of template (Template:CodeSnippet) - now using Template:ArticleMetaData) |
||
| Line 1: | Line 1: | ||
{{KBCS}} | {{KBCS}} | ||
| − | {{ | + | {{ArticleMetaData |
|id=CS001505 | |id=CS001505 | ||
|platform=Qt | |platform=Qt | ||
| Line 8: | Line 8: | ||
|creationdate=November 24, 2009 | |creationdate=November 24, 2009 | ||
|keywords=QSqlDatabase, QSQlite, QSqlError, QSqlQuery | |keywords=QSqlDatabase, QSQlite, QSqlError, QSqlQuery | ||
| + | |||
| + | |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]]) --> | ||
| + | |sdk=<!-- SDK(s) built and tested against (e.g. [http://linktosdkdownload/ Nokia Qt SDK 1.1]) --> | ||
| + | |devicecompatability=<!-- Compatible devices (e.g.: All* (must have GPS) ) --> | ||
| + | |signing=<!-- Empty or one of Self-Signed, DevCert, Manufacturer --> | ||
| + | |capabilities=<!-- Capabilities required (e.g. Location, NetworkServices.) --> | ||
| + | |author=[[User:Tepaa]] | ||
}} | }} | ||
Revision as of 12:11, 24 June 2011
Article Metadata
Tested with
Devices(s): Nokia 5800 XpressMusic, Nokia N900
Compatibility
Platform(s): Qt
Article
Keywords: QSqlDatabase, QSQlite, QSqlError, QSqlQuery
Created: tepaa
(24 Nov 2009)
Last edited: hamishwillee
(24 Jun 2011)
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:
- id (integer primary key), this is an autoincrement field http://www.sqlite.org/autoinc.html
- firstname (varchar(20))
- lastname (varchar(30))
- age (integer)
Preconditions
- Qt is installed on your platform.
- S60:
- Download Qt for S60 release from here: Qt for S60 pre-release
- Install Qt for S60: Installing Qt on S60
- Check this link for installation guide: How to install the package
- Qt for S60 Tower release has SQLite support. The required libraries are built into the Qt release.
- Maemo:
- More information about Qt on Maemo can be found here: Qt4 Maemo port
- S60:
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
- CS001504 - Creating an SQLite database in Qt
- CS001506 - Inserting a row into a database in Qt
- CS001507 - Searching for data in a database in Qt
- CS001508 - Deleting data from a database in Qt
- CS001509 - Selecting data from a database without using SQL statements in Qt
- CS001510 - Using QDataWidgetMapper to show data from a database in Qt

