HTML5SQL使用SELECT语句从Web数据库中检索记录

时间:2011-11-17 16:59:44

标签: javascript jquery sqlite html5 web-storage

我正在使用jquery mobile / phonegap创建一个iphone webapp,我正在尝试使用Web数据库。我有大约700条记录要插入,并希望有一个单独的文件与sql语句一起创建表并在应用程序运行时插入记录。我决定使用一个名为html5sql的小型javascript模块,因为它为我提供了在单个事务中执行多个sql语句的优势。

例如我可以执行

sql = "CREATE TABLE milestones ( 
       ID       INT( 10 )        NOT NULL,
       Title    VARCHAR( 50 )    DEFAULT NULL,
       mYear    INT( 11 )        NOT NULL);
       INSERT INTO `milestones` VALUES ('2', 'Cotton Mather', '1721');";
使用

 html5sql.process(sql, function(){ //Success}, function(error, failingQuery){//Failure});

而不是

transaction.executeSql('CREATE TABLE milestones (ID INT( 10 ) NOT NULL, Title VARCHAR(50 )    DEFAULT NULL, mYear    INT( 11 )        NOT NULL);', [], nullDataHandler, errorHandler); 
transaction.executeSql('INSERT INTO [milestones] ([ID], [Title], [mYear]) VALUES (2, "Cotton Mather", "1721");', [], nullDataHandler, errorHandler); 

htlm5sql的问题是它们没有任何关于如何使用process函数和SELECT语句从数据库中检索信息的信息,并在div块中显示结果。

here is the only short guide for html5sql

任何人都可以帮我吗?

2 个答案:

答案 0 :(得分:2)

不确定。使用html5sql选择数据非常简单,可以通过以下简单的方法完成:

html5sql.process(
    ["SELECT * FROM milestones;"],
    function(transaction, results, rowsArray){
      for(var i = 0; i < rowsArray.length; i++){
        //each row in the rowsArray represents a row retrieved from the database
        var id = rowsArray[i].ID;
        var Title = rowsArray[i].Title;
        var mYear = rowsArray[i].mYear;
        console.log("Retrieved Milestone: "+id+" - "+Title+" "+mYear);
      }
    },
    function(error, statement){
      //hande error here           
    }
);

如果你想要一个更深入的例子,我前后创建了一个jsfiddle,其实际工作代码显示了创建和填充数据库然后选择和检索数据的整个过程。

作为html5sql的作者,我为缺乏文档而道歉。我正在努力改进网站上的文档,并添加更多关于如何做事的实例。

答案 1 :(得分:1)

这让我永远想通了。您应该在文档中为选择结果添加第3个参数