QT-Quick中的Javascript中的openDatabaseSync

时间:2013-12-01 23:01:18

标签: javascript qt function qml

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

import "./js/noteDB.js" as NoteDB

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

Component.onCompleted: {
    NoteDB.openDB()
}

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

function openDB() {
      print("noteDB.createDB()")
     _db = openDatabaseSync("StickyNotesDB", "1.0",
                            "The stickynotes Databes", 1000000);
     createNoteTable();
}

但是我收到以下错误: ReferenceError:未定义openDatabaseSync *

PS:在Qt-Quick中的错误报告后,我尝试了,而不是调用openDB()来执行此操作: var _db = NoteDB.LocalStorage.openDatabaseSync(“StickyNotesDB”,“1.0”,                                                    “TheStickynotesDatabes”,1000000); 但是给出类似的错误: TypeError:无法调用未定义的方法'openDatabaseSync'

感谢所有能指出我正确方向的人。

2 个答案:

答案 0 :(得分:1)

我已经使用我的Qt 5.2进行了测试,但是当我有

时它似乎正常工作
 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  }

 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 :(得分:0)

请尝试以下代码:

.import QtQuick.LocalStorage 2.0 as Sql
...
var _db = Sql.LocalStorage.openDatabaseSync("StickyNotesDB", "1.0",
                                          "The stickynotes Databes", 1000000);