QML中使用LocalStorage 操作sqlite数据库

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的数据库

发布了206 篇原创文章 · 获赞 18 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/lvmengzou/article/details/105244853