`
thierry.xing
  • 浏览: 666102 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
580fa9c1-4a0c-3f40-a55a-c9256ce73302
Sencha Touch中...
浏览量:0
社区版块
存档分类
最新评论

如何在QML使用Sqlite数据库

阅读更多

在程序中,我们经常需要把一些数据持久化,比如一些设置信息和程序配置。QML并不能直接访问本地文件,但是可以通过

Offline Storage API访问本地Sqlite数据库,从而达到目的。

 

首先在qml目录下创建一个storage.js

//storage.js
// 首先创建一个helper方法连接数据库
function getDatabase() {
     return openDatabaseSync("MyAppName", "1.0", "StorageDatabase", 100000);
}
 
// 程序打开时,初始化表
function initialize() {
    var db = getDatabase();
    db.transaction(
        function(tx) {
            // 如果setting表不存在,则创建一个
            // 如果表存在,则跳过此步
            tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)');
	  });
}
 
// 插入数据
function setSetting(setting, value) {
   var db = getDatabase();
   var res = "";
   db.transaction(function(tx) {
        var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]);
              //console.log(rs.rowsAffected)
              if (rs.rowsAffected > 0) {
                res = "OK";
              } else {
                res = "Error";
              }
        }
  );
  return res;
}

 // 获取数据
function getSetting(setting) {
   var db = getDatabase();
   var res="";
   db.transaction(function(tx) {
     var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]);
     if (rs.rows.length > 0) {
          res = rs.rows.item(0).value;
     } else {
         res = "Unknown";
     }
  })
  return res
}

 

 然后就可以在qml里调用了

 

import Qt 4.7
//引入storage.js,起个别名Storage,以供后面使用
import "storage.js" as Storage
Rectangle {
    width: 360
    height: 360
    id: screen
    Text {
        id: textDisplay
        anchors.centerIn: parent
    }
    Component.onCompleted: {
        // 初始化数据库
        Storage.initialize();
        // 赋值
        Storage.setSetting("mySetting","myValue");
        //获取一个值,并把它写在textDisplay里
        textDisplay.text = "The value of mySetting is:\n" + Storage.getSetting("mySetting");
    }
}
 

 

 

0
0
分享到:
评论

相关推荐

    QT QML中SQLite的数据库路径

    我们在用QT Quick的QML编写前端界面时,常常会用到前端SQLite数据库以保持本地的数据,此时你不需要用C++,直接用QML就可以了。 当编写完成代码后,你却不知道数据放在哪里了,实际上QT在你的代码完成后,会把数据库...

    QML SQLite数据库编程

    采用QT的前端界面QML框架,直接对本地数据库SQLite进行CURD操作;因采用QML技术,学员不需要懂得C++代码; 对数据输入的数据校验,采用了在数据输入框相同位置的出错信息提示,更加值观;对数据输入及数据展示,采用...

    QT-SQLite数据库项目

    这个项目展示了如何在QT环境中集成SQLite数据库,为用户提供数据存储和查询的能力。以下是关于QT和SQLite数据库的关键知识点,以及如何在实际项目中应用它们。 1. **QT框架**: QT是一个跨平台的应用程序开发框架...

    QSqlQueryModel模型在QML的ListView

    首先,我们需要在C++中创建一个QSqlDatabase对象,连接到SQLite数据库。这通常涉及到打开数据库文件、设置连接参数等步骤。例如: ```cpp QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); db.setDatabase...

    基于Qt和sqlite数据库实现的银行管理系统 银行管理系统QT(c++)

    【标题】中的“基于Qt和sqlite数据库实现的银行管理系统”是指使用Qt框架和SQLite数据库来构建的一个用于模拟银行日常业务的软件系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的API和工具,...

    STM32MP135实现SQLite数据库读写数据【QT GUI可视化实战】.zip

    本项目着重讲解如何在STM32MP135上利用QT GUI进行SQLite数据库的读写操作,实现数据的可视化展示。 首先,我们要理解STM32MP135的特点。它集成了强大的CPU、浮点运算单元(FPU)以及丰富的外设接口,如GPIO、SPI、I2C...

    Qt6 QML Book/存储/本地存储-SQL示例源码

    在QML中,我们可以通过`QtSql.QSqlDatabase`对象建立与SQLite数据库的连接,并使用`QtSql.QSqlQuery`执行SQL语句,如创建表、插入、查询和更新数据。`colorstore`可能展示了如何在QML中创建一个模型来展示存储的颜色...

    基于QML的简单例子,包括listview调用数据库sqlite3增删改查,TCP客户端服务端通信,串口通信

    在本文中,我们将深入探讨如何使用Qt Quick QML(Quantum Meruit Language)来构建一个简单的应用程序,该程序涉及SQLite数据库的使用、TCP客户端-服务器通信以及串口通信。这是一份非常适合初学者的实践教程,它将...

    Qt使用MVC、数据库单例模式实现登录注册

    Qt提供QSqlDatabase、QSqlQuery等类来操作SQLite数据库,我们可以在模型层中使用这些类进行数据库的连接、查询、插入、更新和删除操作。例如,用户注册时,可以将新用户的信息存储到数据库;登录时,从数据库中查找...

    iOS数据库SQLite3基本操作并将内容显示在tableView中

    在iOS应用开发中,SQLite3是一个常用的轻量级数据库,它允许开发者存储和管理应用程序的数据。本教程将深入探讨SQLite3的基本操作,并演示如何将查询到的数据展示在UITableView上,这是iOS开发中常见的数据呈现方式...

    单例、QML、model、数据库

    在Qt中,可以使用SQL数据库模块(如SQLite、MySQL或PostgreSQL)来处理数据库操作。这些模块提供了连接、查询、事务等基本功能。单例模式常用于数据库连接管理,确保应用在整个运行期间只有一个数据库连接,避免资源...

    ListVIew存储和表现sqlite数据

    在Android应用中,SQLite数据库常被用来持久化数据,存储结构化的信息。当需要将SQLite数据库中的数据展示在ListView上时,通常会涉及以下几个关键知识点: 1. **SQLite数据库操作**: - **创建数据库**:使用...

    qt数据库操作(使用qt creator编写)

    在IT行业中,Qt是一个广泛应用的跨平台开发框架,尤其在创建图形用户界面(GUI)应用程序...通过实践和学习这个例子,开发者可以掌握在桌面或移动应用中使用SQLite数据库的基本技巧,并能够灵活地应用于自己的项目中。

    基于qt,数据库使用的是SQLite的一个酒店管理系统.zip

    而SQLite则是一个轻量级的嵌入式数据库,无需独立服务器进程,可以直接在应用中使用,适合小型到中型规模的数据存储需求,如本例中的酒店管理系统。 在该酒店管理系统项目中,Qt的灵活性和SQLite的高效性得到了充分...

    Qt--QML中文手册

    - **本地存储**:讨论如何使用本地存储机制,如SQLite数据库。 - ... (此处省略后续章节内容) 通过以上内容,读者可以系统地掌握QML的基本概念、核心技术和应用场景,从而能够更加熟练地运用QML进行各种复杂项目的...

    数据库课程大作业:基于Qt+sqlite 可视化简易航班查询数据库系统.zip

    该数据库课程大作业是基于Qt框架和SQLite数据库构建的一个可视化简易航班查询系统。Qt是一个跨平台的C++图形用户界面应用程序开发框架,广泛应用于桌面、移动和嵌入式设备的开发。SQLite则是一个轻量级的、开源的、...

    LMSListModel:用于从 QML 查询 Light Media Scanner SQLite 数据库的 QML 插件

    这是 Light Media Scanner 的 QML 插件。... 该项目使用的查询依赖于 LMS 的 GENIVI 媒体管理器版本的数据库模式,其中包括数据库中的专辑封面。 请参阅此处: : 有关使用示例,请参阅 main.qml。

    Qt与数据库相关的sqlite3文件

    这篇文档将深入探讨Qt如何与SQLite3数据库进行交互,以及如何在开发过程中利用它们。 首先,让我们了解Qt是如何集成SQLite3的。Qt的Sql模块提供了与多种数据库系统的接口,其中包括SQLite3。要使用SQLite3,你需要...

    基于Qt和sqlite的共享雨伞管理系统数据库课设.zip

    - SQLite集成:在Qt中,可以使用QSqlDatabase模块直接连接和操作SQLite数据库,无需额外安装数据库服务器。 - SQL查询:通过QSqlQuery或其他相关类,执行CRUD(创建、读取、更新、删除)操作。 - 数据模型:Qt...

Global site tag (gtag.js) - Google Analytics