-1

这是我<script>的 HTML 页面中的标签给我的错误:

未捕获的错误:文件已加密或不是数据库

<script>
   var file = "/data/myDB.sqlite";
   var db = new SQL.Database(file);
   db.run("SELECT * FROM WEBUSERS", function(err, rows) {
      rows.forEach(function (row) { 
         console.log('WEBUSERS Created User: '+row.USERNAME);
      });
    });
</script>
4

1 回答 1

0

如评论中所述,构造函数不采用字符串,它采用包含 SQLite 数据库的 Uint8Array。

一种方法是使用 ajax 请求将数据库作为数组缓冲区并将其转换为 Uint8Array。

var file = "/data/myDB.sqlite";

var xhr = new XMLHttpRequest();
xhr.open('GET', file, true);
xhr.responseType = 'arraybuffer';
xhr.onload = function() {
    var data = new Uint8Array(this.response);
    var db = new SQL.Database(data);
    db.run("SELECT * FROM WEBUSERS", function(err, rows) {
        rows.forEach(function(row) {
            console.log('WEBUSERS Created User: ' + row.USERNAME);
        });
    });
};
xhr.send();
于 2016-09-22T13:26:59.003 回答