メイン画像

VBScript - Connection も Commandも使わないデータベース検索 | Recordset

VBScript - Connection も Commandも使わないデータベース検索 | Recordset


ADO (Microsoft ActiveX Data Objects) を使ったデータベース検索の方法を紹介する。

使うオブジェクトは Recordset のみ。
おそらくこの方法が一番簡単だろう。

サンプルスクリプト

次のスクリプトは Oracle サーバーのシステム日時を表示する。

Option Explicit

Dim rst
Set rst = CreateObject("ADODB.Recordset")

'データベースに接続してデータを検索する
'~~~TODO: SQLと接続先は適宜修正~~~
rst.Open "select SYSDATE from dual", "Provider=OraOLEDB.Oracle;User ID=scott;Password=tiger;Data Source=ORCL;"

'~~~TODO: 検索結果を使った処理を書く~~~
Do While Not rst.EOF
  WScript.Echo rst.Fields("SYSDATE").Value
  rst.MoveNext
Loop

'レコードセットを閉じる
If rst.State <> 0 Then
  rst.Close
End If
Set rst = Nothing

説明

Recordset.Open に SQL と接続文字列を指定すると、データベースへの接続後、SQL が実行される。

rst.Open "select SYSDATE from dual", "Provider=OraOLEDB.Oracle;User ID=scott;Password=tiger;Data Source=ORCL;"

 

SQL の実行結果は Recordset に格納されるので、それを参照すればよい。

以下は、検索結果の数だけ、カラム SYSDATE の内容を表示する例。

'検索結果のレコード数だけ繰り返す
Do While Not rst.EOF
  'カラムの値を表示
  WScript.Echo rst.Fields("SYSDATE").Value
  '次のレコードに進む
  rst.MoveNext
Loop

 

使い終わったら Recordset を解放する。

Close の実行で Recordset が閉じられ、データベースとの接続も切断される。

If rst.State <> 0 Then
  rst.Close
End If
Set rst = Nothing

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事