首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QT-Quick中的openDatabaseSync

QT-Quick中的openDatabaseSync
EN

Stack Overflow用户
提问于 2013-12-01 23:01:18
回答 3查看 2.2K关注 0票数 1

在main.qml中,导入了一个javascript文件:

代码语言:javascript
复制
import "./js/noteDB.js" as NoteDB

在里面,我想用数据库来保存和加载状态,所以我调用,

代码语言:javascript
复制
Component.onCompleted: {
    NoteDB.openDB()
}

其中openDB()是在noteDB.js文件中定义的:

代码语言:javascript
复制
function openDB() {
      print("noteDB.createDB()")
     _db = openDatabaseSync("StickyNotesDB", "1.0",
                            "The stickynotes Databes", 1000000);
     createNoteTable();
}

但我得到了以下错误: ReferenceError: openDatabaseSync未定义*

PS:在Qt中的bug报告之后,我也尝试这样做,而不是调用openDB():var _db =openDB "1.0","TheStickynotesDatabes",1000000);但是给出了一个类似的错误: TypeError:无法调用未定义的openDatabaseSync方法

谢谢任何能为我指明正确方向的人。

EN

回答 3

Stack Overflow用户

发布于 2013-12-02 08:26:52

我用我的Qt5.2进行了测试,当我有

代码语言:javascript
复制
 1  import QtQuick.LocalStorage 2.0
 2  import QtQuick 2.0
 3  import "noteDB.js" as NoteDB
 4
 5  Item {
 6          Component.onCompleted: {
 7                      NoteDB.openDB();
 8          }
 9  }

代码语言:javascript
复制
 1  function openDB() {
 2            print("noteDB.createDB()")
 3            var _db = LocalStorage.openDatabaseSync("StickyNotesDB", "1.0",
 4                                             "The stickynotes Databes", 1000000);
 5  }

因此,我建议您编写LocalStorage.openDatabaseSync并再次检查是否存在import QtQuick.LocalStorage 2.0

票数 1
EN

Stack Overflow用户

发布于 2014-06-14 15:02:51

尝试以下代码:

代码语言:javascript
复制
.import QtQuick.LocalStorage 2.0 as Sql
...
var _db = Sql.LocalStorage.openDatabaseSync("StickyNotesDB", "1.0",
                                          "The stickynotes Databes", 1000000);
票数 0
EN

Stack Overflow用户

发布于 2022-07-13 06:55:29

代码语言:javascript
复制
import QtQuick 2.0
import QtQuick.LocalStorage 2.0 as Sql

Rectangle {
    color: "white"
    width: 200
    height: 100

Text {
    text: "?"
    anchors.horizontalCenter: parent.horizontalCenter
    function findGreetings() {
        var db = Sql.LocalStorage.openDatabaseSync("QDeclarativeExampleDB", "1.0", "The Example QML SQL!", 1000000);

        db.transaction(
            function(tx) {
                // Create the database if it doesn't already exist
                tx.executeSql('CREATE TABLE IF NOT EXISTS Greeting(salutation TEXT, salutee TEXT)');

                // Add (another) greeting row
                tx.executeSql('INSERT INTO Greeting VALUES(?, ?)', [ 'hello', 'world' ]);

                // Show all added greetings
                var rs = tx.executeSql('SELECT * FROM Greeting');

                var r = ""
                for (var i = 0; i < rs.rows.length; i++) {
                    r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n"
                }
                text = r
            }
        )
    }
    Component.onCompleted: findGreetings()
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20318365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档