libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

ScriptDbによるオブジェクトデータベース (4/6)

作成:2012-07-01 14:09
更新:2012-07-01 14:09

■オブジェクトの更新と削除

オブジェクトの追加と検索の基本がわかったところで、その他の操作として「更新」と「削除についても説明しておきましょう。


●オブジェクトの更新
オブジェクトの更新は、実は専用のメソッドなどは用意されていません。ScriptDbInstanceからオブジェクトを検索して取り出し、そのプロパティを書き換えてsaveすれば、そのオブジェクトが更新されるのです。

下のリスト欄に、オブジェクトを検索して更新する簡単なサンプル(modifyData関数)を用意しました。ここでは、以下のようにしてオブジェクトを更新しています。
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);
db.queryでオブジェクト検索をし、そこからnextでオブジェクトを取り出して、そのプロパティを修正します。そして再度db.saveで保存をすれば、オブジェクトが更新されます。


●オブジェクトの削除
オブジェクトの削除も、基本的な流れはオブジェクトの修正と同じです。まず削除したいオブジェクトを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);

――とりあえず、これでオブジェクトの追加・検索・更新・削除といった基本操作はできるようになりました。オブジェクト・データベースとして使うための最低限の機能はこれで揃いましたね。

※プログラムリストが表示されない場合

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プログラミング [中級編]」に戻る