0

オフライン ストレージには websql を使用します。次の addItem 関数は、Chromium を除く他のブラウザーで機能します。

  itemset.webdb.createTable = function() {
     var db = itemset.webdb.db;
     db.transaction(function(tx) {
      tx.executeSql("CREATE TABLE IF NOT EXISTS items(ID INTEGER PRIMARY KEY ASC,        
          item_name TEXT, desp TEXT, due_date DATE)", []);
    });
  }

   itemset.webdb.addItem = function(item_name, desp, due_date) {
        var db = itemset.webdb.db;
        db.transaction(function(tx){
          //var added_on = new Date();
          tx.executeSql("INSERT INTO items(item_name, desp, due_date) VALUES (?,?,?)",
              [item_name,desp,due_date],
              itemset.webdb.onSuccess,
              itemset.webdb.onError);
         });
      }

Chromium でエラーが発生しました:「エラーが発生しました: ステートメントを準備できませんでした (1 つのテーブル項目に due_date という名前の列がありません)」。うまくいかないのはなぜですか?

4

2 に答える 2

1

次のコードなど、新しいフィールドをテーブルに追加するだけです。

db.transaction(function(txt))
{
    txt.executeSql("ALTER TABLE items ADD item_name TEXT, desp TEXT, due_date DATE");
}
于 2012-11-08T19:08:01.117 に答える
0

新しいテーブル名を作成するか、ドロップしてテーブルを作成します。

于 2016-08-23T11:28:34.830 に答える