3. Lien avec l'application
Pour que BiblioApp ait accès à la base de données, le composant Qt Quick devra
mémoriser la variable de base de données (précédemment nommée db) de manière
globale à l'application. Une solution est de définir une nouvelle propriété au niveau de
la fenêtre. Ceci se fait avec le mot clé property, suivi du type de la propriété (ici,
var) et du nom voulu, à la même hauteur que les autres propriétés :
ApplicationWindow {
id: window
// …
property var db
Ensuite, le reste de l'activité par rapport à la base de données est encapsulé dans une
série de fonctions JavaScript, qui peuvent être incluses directement dans la fenêtre
principale.
Note > La définition de nouvelles propriétés est expliquée à la Section 2, Interface
d'un composant et propriétés.
La première de ces fonctions concerne l'ouverture d'une connexion à la base de
données, mais aussi sa création. La table des genres doit être remplie (BiblioApp ne
fournit aucun moyen de l'éditer), celle des livres peut l'être pour montrer directement à
l'utilisateur ce dont l'application est capable.
function openDB() {
db = LocalStorage.openDatabaseSync(
"BiblioApp", "1.0", "BiblioApp SQL database", 1000000,
function (db) {
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE genres (' +
'genre_id INTEGER PRIMARY KEY,' +
'genre TEXT' +
');');
tx.executeSql('CREATE TABLE books (' +
'book_id INTEGER PRIMARY KEY,' +
'title TEXT,' +
'author TEXT,' +
'genre_id INTEGER' +
// …
');');
tx.executeSql('INSERT INTO genres (genre) VALUES ' +
'("(None)"), ("Biography"), ("Crime"),
' +
364
Pour que BiblioApp ait accès à la base de données, le composant Qt Quick devra
mémoriser la variable de base de données (précédemment nommée db) de manière
globale à l'application. Une solution est de définir une nouvelle propriété au niveau de
la fenêtre. Ceci se fait avec le mot clé property, suivi du type de la propriété (ici,
var) et du nom voulu, à la même hauteur que les autres propriétés :
ApplicationWindow {
id: window
// …
property var db
Ensuite, le reste de l'activité par rapport à la base de données est encapsulé dans une
série de fonctions JavaScript, qui peuvent être incluses directement dans la fenêtre
principale.
Note > La définition de nouvelles propriétés est expliquée à la Section 2, Interface
d'un composant et propriétés.
La première de ces fonctions concerne l'ouverture d'une connexion à la base de
données, mais aussi sa création. La table des genres doit être remplie (BiblioApp ne
fournit aucun moyen de l'éditer), celle des livres peut l'être pour montrer directement à
l'utilisateur ce dont l'application est capable.
function openDB() {
db = LocalStorage.openDatabaseSync(
"BiblioApp", "1.0", "BiblioApp SQL database", 1000000,
function (db) {
db.transaction(function (tx) {
tx.executeSql('CREATE TABLE genres (' +
'genre_id INTEGER PRIMARY KEY,' +
'genre TEXT' +
');');
tx.executeSql('CREATE TABLE books (' +
'book_id INTEGER PRIMARY KEY,' +
'title TEXT,' +
'author TEXT,' +
'genre_id INTEGER' +
// …
');');
tx.executeSql('INSERT INTO genres (genre) VALUES ' +
'("(None)"), ("Biography"), ("Crime"),
' +
364
