import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
//
import QtQuick.LocalStorage 2.0
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Row{
Button{
id: btnAddRow
text: "增加"
onClicked: {
insertTbl("rr", "dd");
}
}
Button{
id: btnSubRow
text: "查询"
onClicked: {
text = selectTbl("rr");
}
}
}
Component.onCompleted: {
initialize();
}
function getDatabase() {
return LocalStorage.openDatabaseSync("customdb", "1.0", "a db", 100000);
}
// 程序打开时,初始化表
function initialize() {
var db = getDatabase();
db.transaction(
function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS table_1(col_1 TEXT UNIQUE, col_2 TEXT)');
});
}
// 插入数据
function insertTbl(setting, value) {
var db = getDatabase();
var res = "";
db.transaction(function(tx) {
var rs = tx.executeSql('INSERT OR REPLACE INTO table_1 VALUES (?,?);', [setting,value]);
//console.log(rs.rowsAffected)
if (rs.rowsAffected > 0) {
res = "OK";
} else {
res = "Error";
}
}
);
return res;
}
// 查询数据
function selectTbl(setting) {
var db = getDatabase();
var res="";
db.transaction(function(tx) {
var rs = tx.executeSql('SELECT col_2 FROM table_1 WHERE col_1 =?;', [setting]);
if (rs.rows.length > 0) {
res = rs.rows.item(0).col_2;
} else {
res = "Unknown";
}
})
return res
}
}
执行完后在
QQmlApplicationEngine engine;
engine.offlineStoragePath() 的路径下创建 Databases 文件夹,文件夹下放入 ini配置文件
[General]
Name=customdb
Version=1.0
Description=a db
EstimatedSize=100000
Driver=QSQLITE
和XXX.sqlite的数据库