ScriptDbによるオブジェクトデータベース (4/6)
作成:2012-07-01 14:09
更新:2012-07-01 14:09
更新:2012-07-01 14:09
■オブジェクトの更新と削除
オブジェクトの追加と検索の基本がわかったところで、その他の操作として「更新」と「削除についても説明しておきましょう。
●オブジェクトの更新
オブジェクトの更新は、実は専用のメソッドなどは用意されていません。ScriptDbInstanceからオブジェクトを検索して取り出し、そのプロパティを書き換えてsaveすれば、そのオブジェクトが更新されるのです。
下のリスト欄に、オブジェクトを検索して更新する簡単なサンプル(modifyData関数)を用意しました。ここでは、以下のようにしてオブジェクトを更新しています。
●オブジェクトの削除
オブジェクトの削除も、基本的な流れはオブジェクトの修正と同じです。まず削除したいオブジェクトをScriptDbInstanceから取得し、それをScriptDbInstanceの「remove」で取り除きます。下のリスト欄にその利用例を挙げておきました。(delData)
――とりあえず、これでオブジェクトの追加・検索・更新・削除といった基本操作はできるようになりました。オブジェクト・データベースとして使うための最低限の機能はこれで揃いましたね。
●オブジェクトの更新
オブジェクトの更新は、実は専用のメソッドなどは用意されていません。ScriptDbInstanceからオブジェクトを検索して取り出し、そのプロパティを書き換えてsaveすれば、そのオブジェクトが更新されるのです。
下のリスト欄に、オブジェクトを検索して更新する簡単なサンプル(modifyData関数)を用意しました。ここでは、以下のようにしてオブジェクトを更新しています。
var db = ScriptDb.getMyDb();db.queryでオブジェクト検索をし、そこからnextでオブジェクトを取り出して、そのプロパティを修正します。そして再度db.saveで保存をすれば、オブジェクトが更新されます。
var result = db.query({name:name});
if (result.hasNext()){
var obj = result.next();
obj.mail = mail;
obj.tel = tel;
obj.age = age;
db.save(obj);
●オブジェクトの削除
オブジェクトの削除も、基本的な流れはオブジェクトの修正と同じです。まず削除したいオブジェクトをScriptDbInstanceから取得し、それをScriptDbInstanceの「remove」で取り除きます。下のリスト欄にその利用例を挙げておきました。(delData)
var db = ScriptDb.getMyDb();
var result = db.query({name:name});
if (result.hasNext()){
var obj = result.next();
var re = db.remove(obj);
――とりあえず、これでオブジェクトの追加・検索・更新・削除といった基本操作はできるようになりました。オブジェクト・データベースとして使うための最低限の機能はこれで揃いましたね。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
// オブジェクトの修正 function modifyData(){ var name = Browser.inputBox("名前:"); var mail = Browser.inputBox("新しいメールアドレス:"); var tel = Browser.inputBox("新しい電話番号:"); var age = Browser.inputBox("新しい年齢:"); var db = ScriptDb.getMyDb(); var result = db.query({name:name}); if (result.hasNext()){ var obj = result.next(); obj.mail = mail; obj.tel = tel; obj.age = age; db.save(obj); } else { Browser.msgBox("見つかりませんでした。"); } } // オブジェクトの削除 function delData(){ var name = Browser.inputBox("名前:"); var db = ScriptDb.getMyDb(); var result = db.query({name:name}); if (result.hasNext()){ var obj = result.next(); var re = db.remove(obj); Logger.log(re); } else { Browser.msgBox("見つかりませんでした。"); } }
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る