【问题标题】:Reading info from sqlite database, Syntax? How do I use it in html5 webapp?从 sqlite 数据库中读取信息,语法?如何在 html5 webapp 中使用它?
【发布时间】:2010-06-25 23:23:44
【问题描述】:

我正在构建一个 web 应用程序,并且刚刚开始使用 SQLite。我已经能够创建我的表单,打开我创建的数据库,创建我需要的表和字段,并将数据输入到字段中。

现在我正在尝试使用 SELECT 语句将数据读回,以将其显示在屏幕上并作为列列表显示。我只是不知道javascript或HTML5以外的SELECT语句的语法

'SELECT * FROM MyTable'...我知道这是可以做到的,只是需要一些关于将结果显示在屏幕上的语法帮助。

我从这个开始。

var db = window.openDatabase('TabOrder', '', 'Bar Tab Orders', 2500000); function insertDrinks(category, drinkname, our_cost, cust_cost){ db.transaction(function(tx){ tx.executeSql('INSERT INTO Drinks (category, drinkname, our_cost, cust_cost) VALUES (?, ?, ?, ?)', [category, drinkname, out_cost, cust_cost]); }); } $(document).ready(function() { db.transaction(function(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS Drinks(id INTEGER PRIMARY KEY Autonumber, category TEXT, drinkname TEXT, our_cost FLOAT(6,2), cust_cost FLOAT(7,2))', []); }); });

我以后有这个....

View Cat / Drink List function readDrinks(id, category, drinkname, our_cost, cust_cost){ db.transaction(function(tx) { tx.executeSql('SELECT * FROM Drinks', [id, category, drinkname, our_cost, cust_cost]); }); document.write(id, category + " are the categories."); }

我只是试着把它拼凑起来,除了基本的 SQL 之外我不知道我在用它做什么。

非常感谢任何帮助...这是针对客户端数据库,而不是连接到网络的数据库。

谢谢....

【问题讨论】:

    标签: javascript html web-applications relational-database web-sql


    【解决方案1】:

    the spec 和这个Apple tutorial。简而言之,您需要添加数据和错误回调。此外,您应该传递一个空数组(或 null),因为您的查询没有参数。

    db.transaction(function(tx) {
       tx.executeSql('SELECT * FROM Drinks', 
                     [],
                     function(tx, results)
                     {
                       // results is a http://dev.w3.org/html5/webdatabase/#sqlresultset .  
                       // It has insertId, rowsAffected, and rows, which is
                       // essentially (not exactly) an array of arrays. 
                     },
                     function(tx, error)
                     {
    
                     }
       );
    });
    

    使用命名函数还是匿名函数由您决定。

    编辑:我在 http://jsfiddle.net/WcV6Y/7/ 做了一个工作演示。它已在 Chrome 5.0.375.70 中测试。

    【讨论】:

    • 我按照 Apple 示例进行了编辑,但仍然没有输出到屏幕...
        function readDrinks(id, category, drinkname, our_cost, cust_cost){ db.transaction(function(tx) { tx.executeSql('SELECT * FROM Drinks', [], function readDatahandler(tx, results) { //处理类别列表查询的结果 for (i=0; i<results.rows .length i var row="results.rows.item(i);" stringout="Category:" alert></results.rows>
      如果这有什么不同的话,那就是给 iphone...
    • @bmcgonag,有几个问题,包括您的创建表语法,特别是 AUTONUMBER。请注意,您可以使用command line clientSQLite Manager 之类的工具来测试SQLite 语法。我在jsfiddle.net/WcV6Y/7 做了一个工作演示
    【解决方案2】:

    试试这样的

    tx.executeSql('SELECT * FROM foo', [], function (tx, results) {
                 var len = results.rows.length;
                 for (var i = 0; i < len; ++i) {
                    var obj = results.rows.item(i);
                    alert(obj);
                  }
              });

    另见此短教程http://html5doctor.com/introducing-web-sql-databases/

    【讨论】:

      猜你喜欢
      • 2017-09-20
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多