SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

まだまだ使える! WSH

まだまだ使える! WSHプログラミング ~ データベースを扱う共通モジュールの紹介

まだまだ使える! WSH 第3回

  • X ポスト
  • このエントリーをはてなブックマークに追加

 VBScriptによるプログラミングの開発効率をアップするための共通モジュールを紹介します。今回は、データベースを扱う共通モジュールです。

  • X ポスト
  • このエントリーをはてなブックマークに追加

1. はじめに

 前回は、WSH環境(VBScript)でInternet Explorerを操作し、指定したWebページを開いたり、WebページからHTMLを取得するための共通モジュールを紹介させていただきました。

 今回は、VBScriptでリレーショナルデータベース(RDB:Relational DataBase)を扱う共通モジュールを紹介させていただきます。

 対象となるデータベースは、マイクロソフト社のSQL ServerとMicrosoft Accessです。

 また、上記以外のデータベースについてはODBC(Open Database Connectivity)ドライバを経由して接続したり、SQLを実行してその結果をMicrosoft Excelに展開するためのメソッドなどを用意しました。ぜひ、ご利用いただければ幸いです。

2. 対象読者

  • WSH(VBScript)での開発を行っているプログラマー、システム管理者

3. 必要な環境

  • Windows OS全般

4. ADOを利用してデータベースに接続する

 さて、データベースに関する知識は、インターネットに関する知識と同様、IT技術者にとって必須です。必須の知識とはいえ、業務でデータベースを自在に操れるようになるには、やはり相応の経験が必要です。

 実際、正規のツールがなければデータベースを扱うことができないIT技術者も多いことでしょう。しかし、データベースを扱うにはWindows標準のメモ帳で作成したVBScriptでも十分に可能なのです。

 VBScriptからデータベースに接続する方法はいくつかありますが、ここではADO(ActiveX Data Objects)というCOMを利用します。

 それではさっそく、ADOを利用してローカルのSQL Serverに接続するサンプルを紹介しましょう。

 以下のサンプルは、ローカルのSQL Serverに接続し、[会社]データベースの[従業員]テーブルを参照するサンプルです。

[会社]データベースの[従業員]テーブルのサンプル
コード 名前 ふりがな アドレス 性別 年齢
1 椎名 克実 しいな かつみ shiina_katsumi@example.com 33
2 早坂 剛基 はやさか よしき hayasaka_yoshiki@example.com 32
3 清田 啓介 きよた けいすけ kiyota_keisuke@example.com 28
4 加藤 あい かとう あい katou_ai@example.com 46
5 加藤 未華子 かとう みかこ katou_mikako@example.com 50
6 井上 ジローラモ いのうえ じろーらも inoue_girolamo@example.com 53
7 黒田 晃司 くろた こうじ kurota_kouji@example.com 62
8 早川 禄郎 はやかわ ろくろう hayakawa_rokurou@example.com 32
9 石崎 明日 いしざき めいび ishizaki_meibi@example.com 40
10 河原 なつみ かわはら なつみ kawahara_natsumi@example.com 25

備考

 上記サンプルデータの作成は、以下のサイトを利用させていただきました。

リスト1 共通モジュールを使用せずにSQL Serverに接続する
Option Explicit

'ADODB.Connectionを定義します。
Dim cn
Set cn = CreateObject("ADODB.Connection")

'データベース接続情報を定義します。
Dim sSvr
sSvr = "(local)"
Dim sDB
sDB = "会社"
Dim sUID
sUID = "testuser"
Dim sPWD
sPWD = "password01"

'データベース接続文字列を指定します。
Dim sCn
sCn = "Driver={SQL Server};" _
  & "Server=" & sSvr & ";" _
  & "Database=" & sDB & ";" _
  & "UID=" & sUID & ";" _
  & "PWD=" & sPWD & ";"

'データベースに接続します。
cn.ConnectionString = sCn
cn.Open

'実行するSQLを定義します。
Dim sSQL
sSQL = "SELECT [名前] FROM [従業員] WHERE [コード] = 1"

'SQLコマンドを定義します。
Dim cmd
Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = cn
cmd.CommandText = sSQL

'SQLを実行し、結果セットを取得します。
Dim rs
Set rs = CreateObject("ADODB.Recordset")
rs.Open cmd

'取得した結果をメッセージに表示します。
MsgBox CStr(rs.Fields("名前").Value)

'データベースから切断します。
rs.Close
cn.Close
実行結果
実行結果

 このスクリプトを実行すると、ローカルのSQL Serverデータベースに接続し、[会社]データベースの[従業員]テーブルから[コード]列が1のデータの[名前]列の値を取得します。

 このように、データベースに接続するための専用ツールは必要ありません。データベースに接続するためのユーザーIDとパスワードさえ知っていれば、テキストファイルだけで十分なのです。

次のページ
5. 共通モジュールを利用してデータベースに接続する

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
まだまだ使える! WSH連載記事一覧

もっと読む

この記事の著者

五十嵐貴之(イカラシ タカユキ)

1975年2月生まれ。新潟県長岡市(旧越路町)出身。フリープログラミング団体いかちソフトウェア所属。 著書・これならわかるSQL入門の入門(翔泳社)・Windows自動処理のためのWSHプログラミングガイド(ソシム)・いちばんやさしいデータベースの本(技術評論社)・SQLiteポケットリフ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9205 2016/02/18 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング