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