【問題】
SQL文が実行されない。
phone gap を用いて、Xcodeプロジェクトを作っている時、
javascriptでSQLiteを操作する必要があった。
問題の箇所は以下の通り。
var db = window.openDatabase("hoge","1,0","hogehoge","1024");
db.transaction(function(tx){
tx.executeSql(
'CREATE TABLE IF NOT EXISTS test_table (id SERIAL, val001 TEXT)'
,function(res){
alert("success!");
},function(err){
alert("errorr!!");
}
);
});
アラートがどちらも発動していないので、tx.executeSqlが発動していないのだろう。
【原因】
executeSqlメソッドの引数は、4つ。
第一引数: SQL文
第二引数: よくわからんが、第一引数を補完するもの?
第三引数: 成功時コールバック関数
第四引数: 失敗時コールバック関数
これの、第二引数を抜かして、成功時コールバックを書いていたことによる。
【解決】
tx.executeSql(
'CREATE TABLE IF NOT EXISTS test_table (id SERIAL, val001 TEXT)'
,function(res){
alert("success!");
},function(err){
alert("errorr!!");
}
);
の部分を、
tx.executeSql(
'CREATE TABLE IF NOT EXISTS test_table (id SERIAL, val001 TEXT)'
,[]
,function(res){
alert("success!");
},function(err){
alert("errorr!!");
}
);
とした。
【参考】
このページがドンズバリであった。
DRY