Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дополнительные материалы.pdf
Скачиваний:
3
Добавлен:
07.06.2025
Размер:
12.29 Mб
Скачать

Объект для работы с базой данных

Dao.qml — специальный объект для доступа к данным import QtQuick.LocalStorage 2.0

QtObject { property var db;

function createBooksTable() { db.transaction(function (tx) {

tx.executeSql("CREATE TABLE IF NOT EXISTS books (

id INTEGER PRIMARY KEY AUTOINCREMENT, author TEXT NOT NULL, title TEXT NOT NULL, tp INTEGER NOT NULL);");});

}

function insertBook(author, title) { ... } function updateBook(id, author, title) { ... } function deleteBook(id) { ... } Component.onCompleted: {

db = LocalStorage.openDatabaseSync("books", "1.0"); createBooksTable();

}

}

Миграция базы данных

changeVersion() — метод для миграции от одной версии базы данных к другой

var db = LocalStorage.openDatabaseSync("books", ""); if (db.version === "1.0") {

db.changeVersion("1.0", "1.1", function(tx) { tx.executeSql("...")

});

}

Запросы SELECT и DELETE

function retrieveBooks(callback) { db.readTransaction(function (tx) {

var result = tx.executeSql("SELECT * FROM books;"); callback(result.rows);

});

}

function deleteBook(id) { db.transaction(function (tx) {

tx.executeSql("DELETE FROM books WHERE id = ?;", [id]);

});

}

Запросы INSERT и UPDATE

function insertBook(author, title, tp) { db.transaction(function (tx) {

tx.executeSql("INSERT INTO books (author, title, tp) VALUES(?, ?, ?);", [author, title, tp]);

});

}

function updateBook(id, author, title) { db.transaction(function (tx) {

tx.executeSql("UPDATE books SET author = ?, title = ? WHERE id = ?;", [author, title, id]);

});

}