あんにんにっき。

日々思ったことや、おこったことを記録するブログ。要するに日記。

Titanium MobileでDBにレコードを追加してみる。

 使用するDBは、前日と同じくsqlite3

var btn = Titanium.UI.createButton({
	title:'+'
});
btn.addEventListener('click', function(e){
	var db = Titanium.Database.open('db');
	db.execute('begin transaction');

	db.execute("insert into url (title, url) values ('yahoo', 'http://www.yahoo.co.jp')");

	db.execute('commit');
	db.close();
});
win1.rightNavButton = btn;

 基本的には、
 DBを開く
 →トランザクション開始する
 →INSERT文のSQL実行する
 →トランザクションをコミットする
 →DBにを閉じる
 という、まことにもって基本通りの流れ。
 上記のコードの場合、右上の+ボタンを押すと、データが登録される。画面を動的に再描画する部分については別処理として、今回は保留(つまり、画面を開き直さないと状態が変わらない)。
 昨日の画面と同じデータを使っているので、右上に追加した+ボタンを押すと、yahooのデータが追加される。主キー指定していなかったので、複数件追加されてしまった。


 ところで。登録されたかどうか確認するために、開発環境にあるsqlite3のデータファイルの中身を確認してみたのだけど中身が入っていない。が、シュミレータの挙動を確認するとデータは追加されているらしい。
 なんでだ?と考え込んでしまったが、冷静に考えて見ればデプロイされたシュミレータ上にあるデータファイルの方に登録されているのだから、開発環境側にデータが入っているわけはない。
 デプロイされた側の中身を参照するいい方法がないものだろうか。

追記。

 発見した。
 ~/Library/Application Support/iPhone Simulator/User/Application/アプリ別のディレクトリ/Library/Application Support/database/
 の下に、db名.sql の名称で保存されている。