如果它存在,我怎样才能使一个javascript调用太sqlite来更新表中的行,如果它在 phonegap中不存在则创建该行。
目前,像下面这样的行将成功地在 google chrome 中创建一行
transaction.executeSql("INSERT INTO "+tablename
+" (fieldName,fieldValue,fieldComment) VALUES
('"+name+"', '"+value+"', '"+comment+"');",[],
this.nullDataHandler, this.errorHandler);
但是,当我尝试以下操作时(我认为应该从这里完成:http ://www.sqlite.org/lang_replace.html ),没有任何反应:
transaction.executeSql("REPLACE "+tablename+" (fieldName,fieldValue,fieldComment)
VALUES ('"+name+"', '"+value+"', '"+comment+"');",[],
this.nullDataHandler, this.errorHandler);
(这是在调用之后"CREATE UNIQUE INDEX uniqueName ON "+tablename+" ("+name+")";
)
同样的情况发生在
transaction.executeSql("INSERT INTO OR REPLACE "+tablename+" (fieldName,fieldValue,fieldComment) VALUES ('"+name+"', '"+value+"', '"+comment+"');",[], this.nullDataHandler, this.errorHandler);
(也是在调用 "CREATE UNIQUE INDEX uniqueName ON "+tablename+" ("+name+")" 之后;)
与
transaction.executeSql("DELETE FROM "+tablename+" where \"fieldName\" EQUALS "+name+";",[], this.nullDataHandler, this.errorHandler);
transaction.executeSql("INSERT "+tablename+" (fieldName,fieldValue,fieldComment) VALUES ('"+name+"', '"+value+"', '"+comment+"');",[], this.nullDataHandler, this.errorHandler);
我有一个 try 语句包围的调用,希望有问题的调用会引发异常,但没有发生任何事情。
我不敢相信我在问这个问题,但是在几个星期没有任何事情之后,我认为是时候问了。如果有人知道在 javascript 中调试 sqlite 的方法,请告诉我。我正在 Windows 7 dell inspiron 上的 google chrome (ctrl+shift+i->resources->databases) 中测试数据库。)