Google Apps Script SQL

【コピペでOK】GASでSQLServerを操作する方法

2021年3月27日

Pocket

最近Google App Script(GAS)にハマっている、せのりです。

皆さんはGAS使ってますか?
GASを使えば色んな事ができますよね!

例えば、

  • 日々の作業の自動化
  • Slack、Gmailと連携してリマインダーの作成
  • スクレイピングツールの作成
  • Webアプリケーションの作成
  • データベース(DB)との連携

などなど・・・可能性無限大ですね。
Webサーバーとか用意しなくても簡単にWebアプリ公開できるんだもんなあ。
便利な時代になったなあ。

・・ということで、
今回はGASでDB(SQLServer)からデータ取得する方法を紹介いたします。
始めに完成版を紹介して、後から細部を解説していきます。
では早速いきまっしょい!

完成版!

で、こちらが完成版です。
データベースの接続情報はご自身の環境に合わせて修正してください。

DB接続!

ここから詳細を解説していきます。
まずは「DB接続」から。

関数dbConnectionJdbc.getConnectionでデータベースと接続しています。
接続文字列はJDBC使用時のお決まりの構文です。
プログラムにデータベースの接続情報がハードコーディングされているのは、セキュリティ上あまりよろしくないかも。
非公開のスプレッドシートなどに記載しておくのが良いかもしれません。

関数dbConnectionCloseでコネクションを解放しています。
処理終了時やエラー発生時にこの関数を呼び出しています。

SQL発行!

次に「SQL発行」部分。

関数executeはデータベースからデータを取得する際に使います。
SQLで言うとSELECT文を発行するときに使います。
stmt.execute(sql);でSQL実行しています。

コネクションが取得できていなかったり、データベースに接続できなかった場合は、
catchでエラーログ出力とコネクション解放を行っています。
正常にSQL実行できた場合は、resultsに取得結果が格納されます。

関数executeUpdateはUPDATE・INSERT文を発行するときに使います。
stmt.executeUpdate(sql);でSQL実行しています。
※UPDATE・INSERTは今回扱っていません。

データをスプレッドシートに反映!

最後に検索処理です。

関数searchで、SQL文を構築して、前段の関数executeにSQLを渡しています。
select * from tabletableはご自身がデータを取得したいテーブル名を記載してください。

SQLを実行して取得結果がある場合は、関数writeResultを呼び出しています。
writeResultでは取得結果をスプレッドシートに書き込む処理を記載しています。
取得件数×列数文のループ処理が行われるイメージです。

まとめ

今回は以上となります!

GAS⇒SQLServerへの接続、検索処理について、解説しました。
処理のイメージは伝わりましたでしょうか。
今回は扱っていませんが、登録・更新処理についても記載していく予定です。

GASは様々なことができるので、うまく活用して日々の業務や作業を効率化しちゃいましょう!

-Google Apps Script, SQL
-, ,

Copyright© SENORI BLOG , 2024 All Rights Reserved Powered by AFFINGER5.