Fusion Tablesによるデータベースの利用 (5/6)
作成:2018-04-29 07:59
更新:2018-04-29 07:59
更新:2018-04-29 07:59
■レコードの一覧を表示する
続いて、テーブルに保管されているレコードの取得についてです。FusionTablesオブジェクトには、レコードが保管されているプロパティなどはありません。ではどうやるのか?というと、SQLのクエリー文を実行して結果を受け取るのです。
FusionTablesオブジェクトには、「Query」というプロパティがあります。これは、Queryオブジェクトという、FusionTablesにSQLクエリーを使ってやり取りするための機能を提供するものが代入されています。
レコードを取得するには、「sqlGet」というメソッドを使います。これは以下のように記述します。
・sqlGetで得られたレコード
このrowsから繰り返しなどを使って順にレコードデータの配列を取り出し、そこから各コラムの値を取り出していく。そういう流れでレコードの値を取り出し処理していくことができます。
ここでは、selectのクエリー文を実行してレコードを取得しています。これは、こういう形のテキストとして用意されています。
なお、ここでは全レコードを取り出していますが、where句を追加すれば普通に条件による絞り込みが行なえます。
FusionTablesオブジェクトには、「Query」というプロパティがあります。これは、Queryオブジェクトという、FusionTablesにSQLクエリーを使ってやり取りするための機能を提供するものが代入されています。
レコードを取得するには、「sqlGet」というメソッドを使います。これは以下のように記述します。
変数 = FusionTables.Query.sqlGet( クエリー文 );これでクエリー文の実行結果を扱うSqlresponseというオブジェクトが返されます。取得したレコードは、この中の「rows」というプロパティにまとめられています。
・sqlGetで得られたレコード
[Sqlresponse].rowsrowsプロパティの値は、レコードの値をまとめた配列になっています。配列の中には、各レコードの値を配列にまとめたものが入っています。つまり、rowsは「配列の配列」になっているのです。
このrowsから繰り返しなどを使って順にレコードデータの配列を取り出し、そこから各コラムの値を取り出していく。そういう流れでレコードの値を取り出し処理していくことができます。
■select文について
ここでは、selectのクエリー文を実行してレコードを取得しています。これは、こういう形のテキストとして用意されています。
select * from [テーブルID]SQLでは、fromの後にテーブル名を指定しますが、Fusion Tablesの場合は、テーブルに割り当てられたIDを指定します。テーブル名ではうまくテーブルが得られないので注意して下さい。
なお、ここでは全レコードを取り出していますが、where句を追加すれば普通に条件による絞り込みが行なえます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
function getRows() { var query = 'select * from ' + tableId; var res = FusionTables.Query.sqlGet(query); for (var i in res.rows) { Logger.log(res.rows[i]); } }
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る