CONTENT
こんにちは、大阪エンジニアのYです。
すこし間が空きましたが前回、VBScriptでDBのデータを取得するための前準備を紹介しました。
(前回の記事→こちら)
今回は準備編に続き、VBScriptでDBのデータを取得する方法(本編)を紹介したいと思います。
前回の記事を読まれていない方は是非そちらもご参照下さい。
まずは前回の振り返りにはなりますが、
VBScriptとは...
・「Visual Basic Scrip」の略
・Microsoftが開発したスクリプト言語の1つ
・Microsoft Windows 上や Internet Information Server(IIS)上で動作する
Windows上で動作するため、定型的に自身の端末で実行する作業をVBScript(以下VBS)で用意しておき、スケジュール等で起動することでその手間を省くときにも活用できます。
【VBSからDB接続するうえで少し準備】
1.DBを準備する(繋がる先が無ければ何も試せないので)
2.DBに接続するためのODBC設定を作成する
ここまでの設定が完了している前提で、上記の接続設定(ODBC設定)を使用してVBSでテーブルのデータを取得していきたいと思います。
今回は以下のテーブルからデータを取得していきます。
[テーブル名:vbs_test_table]
まずは空のVBSファイルを作成します。
今回は「~~~.vbs」というように拡張子に「vbs」を指定することで、windowsがVBSファイルと認識してくれるので拡張子を間違わないようにしましょう。
次にファイル内に記載するプログラムの内容ですが、簡単な例として、
①DBに接続
②テーブルにSQLを発行
③SQLに応じた取得結果を1レコード毎にメッセージとして出力
をしていきたいと思います。
①DBに接続
------------------------------------------------
1 Set conn = CreateObject("ADODB.Connection")
2 Set rs = CreateObject("ADODB.Recordset")
3 conn.Open "DSN={ODBC接続設定名}"
------------------------------------------------
1行目、2行目についてはADOというWindowsで用意されているDBを操作、参照するための部品を使用するための記述になります。
それぞれDB接続に必要な変数として定義したうえで、3行目で実際に接続に使用する設定を指定します。
ここでは先に作成しておいたODBC設定名(="VBS_TEST")を指定します。
②テーブルにSQLを発行
------------------------------------------------
4 rs.Open "select * from vbs_test_table", conn
------------------------------------------------
①で作成したDB操作用の変数を使用してSQLをDBに対して実行します。
"select ~~~"については任意のSQLに変更することで意図したデータを抽出することができます。
③SQLに応じた取得結果を1レコード毎にメッセージとして出力
------------------------------------------------
5 rs.MoveFirst
6 Do While Not rs.EOF
7 MsgBox rs.Fields(0) & ", " & rs.Fields(1) & ", " & rs.Fields(2)
8 rs.moveNext
9 Loop
------------------------------------------------
②で発行したSQLの結果に対して操作を行います。
取得したレコード参照をする際に「カーソル」という概念が使用されます。
5行目でカーソルを取得したレコードの1レコード目に移動させます。
6~9行目でカーソルを順番に2行目、3行目・・・と移動していき最終行まで移動したタイミングで処理が終了します。
カーソルを次に移動する処理は8行目で実行しています。
7行目では取得したレコードの1番目のカラムから3番目のカラムまでの内容をカンマ区切りでメッセージとして出力しています。
上記を踏まえて出来上がったファイルが以下になります。
(読みやすくするために改行を挿入しているため上記で紹介した行番号とは少しずれています。)
あとはこのファイルをダブルクリックすることで処理が実行できるので早速実行してみましょう・・・!
以下のようなメッセージが順に表示されれば処理成功です。
テーブルの内容が順に取得されて、カラムに設定されている値がメッセージとして表示されていることが確認できます。
以上で簡単な例ではありますが、VBSからのDB接続、テーブルのデータ取得に関しては完了です。
もちろんデータの取得の他にデータの更新や登録も行うことができます。
そのあたりの内容についても紹介しておきたかったのですが、少し長くなってきたのでまた次回のお題にしようと思います。
興味のある方がいらっしゃれば
是非、お楽しみにお待ち下さい・・・!