前回はGoogleSheetsPutコンポーネントの使い方について紹介しました。
今回はGoogleSheetsSQLCallコンポーネントについて紹介します。
GoogleSheetsSQLCallコンポーネントはRDB系のSQLCallコンポーネントと同様に任意のSQLの実行する際に使います。
例えば、「実行する処理」プロパティの実行するSQLの種類を指定することで、SELECT文の発行、SELECT文以外の任意のSQL文の発行、ストアドプロシージャを実行することができます。
今回はGoogleSheetsSQLCallコンポーネントを利用し、ワークシートの範囲検索とUpdateSheetストアドプロシージャの実行でシート名を変更してみたいと思います。
ワークシートの範囲検索とUpdateSheetストアドプロシージャについて詳しくは下記のCData社のマニュアルをご参考ください。
- ワークシートの範囲検索
CData JDBC Driver for Google Spreadsheetsのオンラインヘルプ > スプレッドシートのテーブルとしての使用 > テーブル > ユーザー指定範囲
http://cdn.cdata.com/help/RLF/jp/jdbc/pg_sheetstables.htm - UpdateSheetストアドプロシージャ
CData JDBC Driver for Google Spreadsheetsのオンラインヘルプ > スプレッドシートのテーブルとしての使用 > ストアドプロシージャ > UpdateSheet
http://cdn.cdata.com/help/RLF/jp/jdbc/pg_sp-updatesheet.htm
■事前準備
上記のオンラインヘルプにも書いてありますが、ワークシートの範囲検索を行うためには「Header」プロパティが「false」に設定されている必要があります。従って、今回は下記のようにコネクションを追加で作成してみました。
- コネクションの基本タブ
- 名前:コネクション名を指定します。
- スプレッドシート:スプレッドシート名を指定します。
- コネクションの詳細タブ
- 「Header」オプションを追加して「false」に指定します。
「Header」オプションを指定しないとデフォルトは「true」となります。
■処理の概要
先ずは、ワークシートに登録されているデータを確認してみましょう。
- パートナー一覧(コピー元のシート)
- パートナー一覧のコピー(コピー先のシート)
今回は「パートナー一覧」シートから会社名、担当者、電話番号のデータを取得し、「パートナー一覧のコピー」シートへコピーしてから、シート名を「バートナー電話番号」に変更する処理をやってみたいと思います。
■フローの構成
上記の処理を行うフローを作成してみましょう。
- GoogleSheetsSQLCallコンポーネントを利用して「パートナー一覧」ワークシートから範囲検索を行います。
- GoogleSheetsPutコンポーネントを利用して取得したデータを「パートナー一覧のコピー」シートに書き込みます。
- 最後に、GoogleSheetsSQLCallコンポーネントを利用して、「パートナー一覧のコピー」シート名を「パートナー電話番号」に変更します。
■コンポーネントの設定内容
主に、データ取得用のGoogleSheetsSQLCallコンポーネント、シート情報を取得するGoogleSheetsGetコンポーネント、ストアドプロシージャ実行するためのマッパー、GoogleSheetsSQLCallコンポーネントについて設定内容を確認してみます。
- GoogleSheetsSQLCallコンポーネント(データ取得用)
-
- コネクション名:範囲検索を行うために上記の事前準備で作成したコネクションを指定します。
- 実行する処理:「SELECT文を発行」を指定します。
- SQL文:「SELECT * FROM "GoogleSheets"."[スプレッドシート名]_パートナー一覧#A2:C5"」を指定します。
これで、「パートナー一覧」ワークシートの「A2」から「C5」までのデータを取得することができます。
- GoogleSheetsGetコンポーネント
- Sheetsテーブルから以下の5項目を取得します。
- SpreadsheetId
- SheetId
- SheetIndex
- RowCount
- ColumnCount
- Where句(条件)を2つ追加します
- 'SpreadsheetName'='[スプレッドシート名]'
- 'SheetName'='[変更するシート名]'
- Sheetsテーブルから以下の5項目を取得します。
- GoogleSheetsSQLCallコンポーネント(ストアドプロシージャ実行用)
- 基本タブ
- コネクション名:コネクション名を指定します。
- 実行する処理:「ストアド実行(結果なし)」を指定します。
- SQL文:「{call UpdateSheet(?SpreadsheetId?, ?SheetId?, ?Title?,?Index?,?RowCount?,?ColumnCount?)}」を指定します。
- 詳細タブ
- ストアドプロシージャ実行に必要なSQLパラメーターを定義します。
- SpreadsheetId:スプレッドシートのID。
- SheetId:シートのID。
- Title:シート名。
- Index:シートのインデックス。
- RowCount:行数。
- ColumnCount:列数。
- マッパー(ストアドプロシージャ実行関連)
- GoogleSheetsGetコンポーネントで取得した"SpreadsheetId","SheetId","RowCount","ColumnCount"をそれぞれ同名のSQLパラメータにマッピングします。
- "Index"に"SheetIndex"を指定します。
- "Title"に変更後のシート名を指定します。
■フローの実行結果
ご覧の通り、「パートナー一覧」シートから会社名、担当者、電話番号データを別のシートにコピーし、シート名を「パートナー電話番号」に変更することができました。
これまでの4回でCDataのGoogle スプレッドシートアダプターの使用方法について紹介しました。
いかがでしたでしょうか。
CDataのGoogle スプレッドシートアダプターを利用するに役に立てれば幸いです。