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