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();
for(var i = 0; i < rs.rows.length; i++) {
showData(rs.rows.item(i));
}
}removeAllDataを呼び出した後、繰り返しを使ってゼロからrs.rows.length未満の間、処理を行っています。ここでは、rs.rows.item(i)というようにしてデータを取り出し、showDataでデータの表示を行っています。※リストが表示されない場合
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));
}
});
});
}
| << 前へ | 次へ >> |