【问题标题】:How to read data from sqlite .db file in HTML 5/cordova/Intel xdk如何从 HTML 5/cordova/Intel xdk 中的 sqlite .db 文件中读取数据
【发布时间】:2016-09-05 01:18:27
【问题描述】:

我正在使用英特尔 XDK,并且我有一个预填充的 .db 文件,我需要在我的代码中读取该文件。正如我们在本机应用程序中所做的那样,我们将 db 文件放在资产目录中,然后通过将它们复制到应用程序的数据库目录中来访问这些数据库。我是混合应用程序的新手。

【问题讨论】:

    标签: android html sqlite cordova intel-xdk


    【解决方案1】:

    注意:对于您的项目创建的视图数据库, 第一次构建 Windows 并运行您的项目。

    然后转到 C:\Users\XXXXX\AppData\Local\Packages\pakagename\LocalState\yourdbname.db

    您可以找到您的数据库文件 你可以查看那个文件on this site

    用于数据库创建和使用 请使用指向英特尔 XDK 第三方插件的链接。在此之前,请从 GitHub 下载项目依赖 jar 文件并使用 Cordova 插件 SQLite 名称创建目录并将文件放入其中,包括 jar 文件。然后尝试使用 URL 添加插件。

    查看下面的完整代码 1.创建数据库 2.添加表 3.向表中添加数据 4.从表中获取数据

    > // Wait for Cordova to load
    document.addEventListener('deviceready', onDeviceReady, false);
    
    // Cordova is ready
    function onDeviceReady() {
      ////////////////////////////////////////////////////////////////////////////////////////////////
        alert("Start ");
        var db = window.sqlitePlugin.openDatabase({ name: 'my.db', location: 'default' }, function () {
    
    
         alert("database creatred");
         db.transaction(function (tx) {
             tx.executeSql('CREATE TABLE customerAccounts (firstname, lastname, acctNo)');
             alert("Table create");
    
             addItem("first", "last", 100);
             getData("last");
    
         }, function (error) {
             alert('transaction error: ' + error.message);
         }, function () {
            alert('transaction ok');
         });
    
    
        }, function (error) {
        });
    
     ////////////////////////////////////////////////////////////////////////////////////////////////   
    
    
    function addItem(first, last, acctNum) {
      alert("start adding");
        db.transaction(function (tx) {
    
            var query = "INSERT INTO customerAccounts (firstname, lastname, acctNo) VALUES (?,?,?)";
              alert("start insterting");
            tx.executeSql(query, [first, last, acctNum], function(tx, res) {
                console.log("insertId: " + res.insertId + " -- probably 1");
                console.log("rowsAffected: " + res.rowsAffected + " -- should be 1");
                alert("insert complete");
            },
            function(tx, error) {
                alert('INSERT error: ' + error.message);
            });
        }, function(error) {
            alert('transaction error: ' + error.message);
        }, function() {
            alert('transaction ok');
        });
    }
    
    //////////////////////////////////////////////////////////////////////////////////////////////// 
    
        function getData(last) {
    
        db.transaction(function (tx) {
              alert("get data");
            var query = "SELECT firstname, lastname, acctNo FROM customerAccounts WHERE lastname = ?";
               alert("get data working");
            tx.executeSql(query, [last], function (tx, resultSet) {
    
                for(var x = 0; x < resultSet.rows.length; x++) {
                    alert("First name: " + resultSet.rows.item(x).firstname +
                        ", Acct: " + resultSet.rows.item(x).acctNo);
                }
            },
            function (tx, error) {
                alert('SELECT error: ' + error.message);
            });
        }, function (error) {
            alert('transaction error: ' + error.message);
        }, function () {
            alert('transaction ok');
        });
    }
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////    
    
    }
    

    【讨论】:

    • 我要求预填充的 sqlite 数据库,此解决方案用于创建新数据库并使用它。
    【解决方案2】:

    我使用以下代码对 sql.js 和 xml http 请求进行了处理:

    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'yourDBname.db', true);
    xhr.responseType = 'arraybuffer';
    xhr.onload = function(e) 
    { 
    mId = sessionStorage.i;
    var uInt8Array = new Uint8Array(this.response);
    var db = new SQL.Database(uInt8Array);
    var contents = db.exec("SELECT * FROM ....your query");
    // Do as per requirment
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多