tx.executeSql(ここでは、実行するSQLステートメントにINSERT INTO MsgData VALUES(?, ?, ?)というものが用意され、これにはめ込む値として[name, message, time]という配列が用意されています。これは整理すると、以下のようなステートメントになります。
'INSERT INTO MsgData VALUES(?, ?, ?)',
[name, message, time],
function(tx, rs) {……成功時の処理……},
function(tx, error) {……失敗時の処理……});
}
INSERT INTO MsgData VALUES(name, message, time)これは、「INSERT INTO」というSQLのコマンドです。このコマンドは、指定したテーブル(<table>じゃなくて、データベースに用意された、データを格納するためのものです)にデータを追加する働きをします。このコマンドは、
INSERT INTO テーブル名 VALUES ( 各項目の値 );整理するとこんな形で記述をします。後述しますが、SQLデータベースは、データベースの中にテーブルというものが用意され、そこにデータが保管されます。このINSERT INTOにより、データを指定のテーブルに追加できるのです。
tx.executeSql(なんか長ったらしいですが、要するにここでは、以下のようなSQLステートメントを実行していることがわかるでしょう。
'CREATE TABLE IF NOT EXISTS MsgData(
name TEXT,
message TEXT,
time INTEGER)',
[]);
CREATE TABLE IF NOT EXISTS MsgData(name TEXT, message TEXT, time INTEGER)これは「CREATE TABLE」というコマンドです。これは、データベースに「テーブル」と呼ばれるものを作成するためのものです。
CREATE TABLE テーブル名 ( 項目名 タイプ, 項目名 タイプ, …… )これは、このようにして作成をします。テーブル名の後に()をつけ、そこに各項目の名前とタイプ(値の種類)を指定していくのです。
tx.executeSql('SELECT * FROM MsgData', [], ……略…… );ここでは「SELECT * FROM MsgData」というSQLステートメントを用意しています。これは以下のようにして、指定のテーブルからデータを取得するためのものです。
SELECT * FROM テーブル名これで正しくデータが取得できた際には、引数に用意した関数が呼び出されます。ここでは以下のような処理を行っています。
function(tx, rs) {removeAllDataを呼び出した後、繰り返しを使ってゼロからrs.rows.length未満の間、処理を行っています。ここでは、rs.rows.item(i)というようにしてデータを取り出し、showDataでデータの表示を行っています。
removeAllData();
for(var i = 0; i < rs.rows.length; i++) {
showData(rs.rows.item(i));
}
}
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※データの追加 function addData(name, message, time) { db.transaction(function(tx) { tx.executeSql('INSERT INTO MsgData VALUES(?, ?, ?)', [name, message, time], function(tx, rs) { alert("SUCCESS!!"); }, function(tx, error) { alert(source + "::" + message); }); } ); } ※全データの取得 function showAllData() { db.transaction(function(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS MsgData(name TEXT, message TEXT, time INTEGER)',[]); tx.executeSql('SELECT * FROM MsgData', [], function(tx, rs) { removeAllData(); for(var i = 0; i < rs.rows.length; i++) { showData(rs.rows.item(i)); } }); }); }
<< 前へ | 次へ >> |