document.addEventListener("deviceready", onDeviceReady, false);以前にも何度か登場しましたが、「deviceready」というのは、デバイスの準備が完了したことを示すイベントです。データベースもデバイスのボリュームやOSにあるフレームワークなどを利用しますので、ページを開いてすぐには使えません。デバイス利用のための準備が完了したところでようやく疲れう状態となります。そこでdevicereadyイベントを使って処理を呼び出すようにしてあります。
var db = window.openDatabase("Database", "1.0", "mydata", 200000);devicereadyイベントで呼び出されるonDeviceReady関数内では、この2文が実行されています。既に使い方は説明していますのでやっていることはわかりますね。まず、window.openDatabaseでは、"Database"データベースを200000バイトのサイズ指定をしてオープンしています。バージョンは"1.0"としていますが、これは別にどのようなものでも構いません。同じデータを使うときは同じバージョンを指定すれば問題はありません。
db.transaction(populateDB, errorCB, successCB);
DROP TABLE テーブル名通常は、「DROP TABLE」でテーブル名を指定すれば、そのテーブルを削除します。が、ここでは「DROP TABLE IF EXISTS」というようになっていますね? <<bB[IF EXISTSは、「テーブルがあったら、DROP TABLEを実行する」という意味です。こうすることで、テーブルがまだない場合に削除しようとしてエラーになるのを防ぐことができます。
DROP TABLE IF EXISTS テーブル名
CREATE TABLE テーブル名 ( フィールド1, フィールド2, ……)テーブルの作成も同様です。ただ作るだけなら「CREATE TABLE ~」でOKなのですが、既にテーブルがある場合には実行しないように、「CREATE TABLE IF NOT EXISTS ~」としてあります。「IF NOT EXISTS」は、「テーブルがなかったら○○を実行する」という意味です。
CREATE TABLE IF NOT EXISTS テーブル名 ( フィールド1, フィールド2, ……)
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※文末の~~記号は、次の行と続けて記述することを意味します。 // 初期化処理onDeviceReadyを呼び出すためのもの document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { var db = window.openDatabase("Database", "1.0", "mydata", 200000); db.transaction(populateDB, errorCB, successCB); } function populateDB(tx) { tx.executeSql('DROP TABLE IF EXISTS MYMEMO'); tx.executeSql('CREATE TABLE IF NOT EXISTS MYMEMO ~~ (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ~~ title TEXT, memo TEXT)'); } function errorCB(err) { console.log("Error processing SQL: " + err.code); } function successCB() { console.log("Error processing SQL: " + err.code); }
<< 前へ | 次へ >> |