web-sql,javascript,显示数据库的所有表

时间:2016-09-21 15:28:45

标签: javascript web-sql

我需要在网页上显示我的WebSQL-DB中的所有表格。 但是我在几天前首先使用JavaScript和WebSQL。

<script>
    var db = openDatabase('DATABASE', '1.0', 'myDB', 2 * 1024 * 1024);
    db.transaction(
        function(tx) {
            tx.executeSql("SELECT * FROM DATABASE WHERE type = 'table'"), [],
            function(tx, results) {
                var len = results.rows.length;
                var i;
                for(i=0; i<len; i++) {
                    alert(results.rows.item(i));
                }  
            }
        }
    );

</script>

这是我的代码:

            #pragma acc atomic update
            digits[digit] += div; // here

输出必须不是警报。我对其他想法持开放态度。

Google-Chrome的调试工具显示没有错误。

1 个答案:

答案 0 :(得分:0)

以下是您的问题的完整工作代码。代码创建一个DB,2个表然后插入一些数据。稍后我们从DB中提取所有表,然后迭代DB表中的行。我们将结果输出为html表。

这是一个codepen

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    table,tr,th,td{
      border-collapse:collapse;
      border: 1px solid black;
      text-align:center;
    }
  </style>
  <script>
     var db;

    function runExample() {
      createDbAndTables();
      getAllTablesFromDB(getResultSetFromTable);
    }

    function createDbAndTables(callback) {
      db = openDatabase('mydb1', '1.0', 'my first database', 2 * 1024 * 1024);
      db.transaction(function(tx) {
        tx.executeSql('CREATE TABLE IF NOT EXISTS tbl1 (id INTERGER UNIQUE, name TEXT)');
        tx.executeSql('CREATE TABLE IF NOT EXISTS tbl2 (id INTERGER UNIQUE, name TEXT)');
        tx.executeSql('INSERT INTO tbl1 (id,name) VALUES (1,"someone1")');
        tx.executeSql('INSERT INTO tbl1 (id,name) VALUES (2,"someone2")');
        tx.executeSql('INSERT INTO tbl2 (id,name) VALUES (3,"someone3")');
        tx.executeSql('INSERT INTO tbl2 (id,name) VALUES (4,"someone4")');
      });
    }

    function getAllTablesFromDB(callback) {
      db.transaction(function(tx) {
        tx.executeSql('SELECT tbl_name from sqlite_master WHERE type = "table"', [], function(tx, results) {
          callback(results, processResultSet);
        });
      });
    }

    function getResultSetFromTable(results, callback) {
      var length = results.rows.length;
      var j = 0;
      for (var i = 0; i < length; i++) {
        db.transaction(function(tx) {
          var k=0,tblname=results.rows[j++].tbl_name;
          tx.executeSql('SELECT * FROM ' + tblname , [], function(tx, results) {
            callback(tblname,results);
          });
        });
      }

    }

    function processResultSet(tblname,results) {
      console.log('----------------------'+tblname)
      var len = results.rows.length;
      var tbl = document.createElement('table');
      var trTblName = document.createElement('tr');
      var thTblName = document.createElement('th');
      thTblName.innerHTML = tblname;
      trTblName.colSpan = 2;
      trTblName.appendChild(thTblName);
      tbl.appendChild(trTblName);

      var trHeader = document.createElement('tr');
      var th1 = document.createElement('th');
      th1.innerHTML = 'id';
      var th2 = document.createElement('th');
      th2.innerHTML = 'name';
      trHeader.appendChild(th1);
      trHeader.appendChild(th2);
      tbl.appendChild(trHeader);

      for (var i = 0; i < len; i++) {
        var tr = document.createElement('tr');
        var td1 = document.createElement('td');
        td1.innerHTML = results.rows[i].id;
        var td2 = document.createElement('td');
        td2.innerHTML = results.rows[i].name;
        tr.appendChild(td1);
        tr.appendChild(td2);
        tbl.appendChild(tr);
      }
      var body = document.getElementsByTagName('body')[0];
      body.appendChild(tbl);
      body.appendChild(document.createElement('hr'));
    }
  </script>
</head>

<body onload="runExample()">
</body>

</html>