SQLite3のデータベースを操作することができます。
| db = droid.openDatabase(file) | データベースを開く |
| droid.executeSql(db, SQL, callback_ok, callback_ng) | SQLを実行して結果を得る |
| droid.executeSqlSync(db, SQL) | executeSQLと同じだが、結果が取得できるまで待機する |
以下、利用例です。
<h2>Database(SQLite)</h2>
<div id="db_buttons_div" class="buttons">
<button class="func" onclick="openDB()">Open DB</button>
<button class="func" onclick="insertDB()">Insert</button>
<button class="func" onclick="showDB()">Show</button>
<button class="func" onclick="clearDB()">Clear</button>
</div>
<div class="disp" id="db_div">
***
</div>
<script>
var db = null;
function db_lockUI() {
$("db_buttons_div").style.visible = "hidden";
}
function db_unlockUI() {
$("db_buttons_div").style.visible = "visible";
}
function openDB(){
db_lockUI();
db = droid.openDatabase("test3.db");
droid.executeSql(db,
"CREATE TABLE IF NOT EXISTS test (name,value)",
function(){ alert('Open database!'); db_unlockUI(); },
function(e){ alert('Create database error:' + e); db_unlockUI(); }
);
}
function insertDB(){
if (db == null) { alert('DB not opened.'); return; }
db_lockUI();
var name = prompt("input name");
var val = prompt("input value");
val = parseInt(val);
droid.executeSql(db,
"INSERT INTO test (name,value)VALUES('"+name+"',"+val+")",
function(){ alert("success!"); showDB(); db_unlockUI(); },
function(e){ alert("insert error:" + e); db_unlockUI(); }
);
}
function showDB() {
if (db == null) { alert('DB not opened.'); return; }
droid.executeSql(db,
"SELECT * FROM test",
testDB_selectResult,
function(e){alert("select error:" + e); db_unlockUI();}
);
}
function testDB_selectResult(result) {
var txt = "";
for (var i in result) {
var line = result[i];
for (var key in line) {
txt += key + ":" + line[key] + "<br/>";
}
}
$("db_div").innerHTML = txt;
db_unlockUI();
}
function clearDB() {
db_lockUI();
droid.executeSql(db,
"DELETE from test",
function(){ alert("success!"); db_unlockUI(); },
function(e){alert("insert error:" + e); db_unlockUI(); }
);
$('db_div').innerHTML = "clear";
}
</script>
ちなみに、データベース(SQLite3)をアプリに梱包して配布するには、次のTipsが役立ちます。