}
La même opération est effectuée pour les livres.
3.2. Modifications
Dernière étape : lors de l'utilisation de l'application, les modifications apportées
devront être répercutées en base de données. Pour ce faire, le plus simple est de se
connecter sur les boutons de sauvegarde et de suppression et d'appeler le code
transférant les nouvelles données en base.
Les fonctions correspondantes peuvent s'écrire comme suit. Leur argument fait
référence à la ligne de l'élément modifié dans le modèle côté Qt Quick.
function addBook(id) {
db.transaction(function(tx) {
var book = bookModel.get(id);
var gid =
genreModel.findGenreDatabaseIndexByName(book.genre);
tx.executeSql('INSERT INTO books ' +
'(title, author, genre_id…) ' +
'VALUES (?, ?, ?…);',
[book.title, book.author, gid…]);
});
}
function updateBook(id) {
db.transaction(function(tx) {
var book = bookModel.get(id);
var gid =
genreModel.findGenreDatabaseIndexByName(book.genre);
tx.executeSql('UPDATE books ' +
'SET title = ?, author = ?…' +
'WHERE book_id = ?;',
[book.title, book.author…, book.id]);
});
}
function removeBook(id) {
db.transaction(function(tx) {
var book = bookModel.get(id);
tx.executeSql('DELETE FROM books WHERE book_id = ?;',
[book.id]);
});
}
Ensuite, ces fonctions doivent être appelées depuis les boutons. Dans le cas de la
suppression, l'appel à la base de données doit se faire avant la suppression de l'entrée
366
La même opération est effectuée pour les livres.
3.2. Modifications
Dernière étape : lors de l'utilisation de l'application, les modifications apportées
devront être répercutées en base de données. Pour ce faire, le plus simple est de se
connecter sur les boutons de sauvegarde et de suppression et d'appeler le code
transférant les nouvelles données en base.
Les fonctions correspondantes peuvent s'écrire comme suit. Leur argument fait
référence à la ligne de l'élément modifié dans le modèle côté Qt Quick.
function addBook(id) {
db.transaction(function(tx) {
var book = bookModel.get(id);
var gid =
genreModel.findGenreDatabaseIndexByName(book.genre);
tx.executeSql('INSERT INTO books ' +
'(title, author, genre_id…) ' +
'VALUES (?, ?, ?…);',
[book.title, book.author, gid…]);
});
}
function updateBook(id) {
db.transaction(function(tx) {
var book = bookModel.get(id);
var gid =
genreModel.findGenreDatabaseIndexByName(book.genre);
tx.executeSql('UPDATE books ' +
'SET title = ?, author = ?…' +
'WHERE book_id = ?;',
[book.title, book.author…, book.id]);
});
}
function removeBook(id) {
db.transaction(function(tx) {
var book = bookModel.get(id);
tx.executeSql('DELETE FROM books WHERE book_id = ?;',
[book.id]);
});
}
Ensuite, ces fonctions doivent être appelées depuis les boutons. Dans le cas de la
suppression, l'appel à la base de données doit se faire avant la suppression de l'entrée
366
