メイン画像

VBScript - データベースを検索する | Connection, Recordset

VBScript - データベースを検索する | Connection, Recordset


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

Connection オブジェクトでデータベースに接続し、Recordset オブジェクトで検索する方法である。

サンプルスクリプト

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

Option Explicit

'データベースに接続する
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=OraOLEDB.Oracle;User ID=scott;Password=tiger;Data Source=ORCL;"

'データを検索する
Dim rst
Set rst = CreateObject("ADODB.Recordset")
rst.Open "select SYSDATE from dual", conn

'~~~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

'データベースとの接続を切断する
If conn.State <> 0 Then
  conn.Close
End If
Set conn = Nothing

説明

まず Connection オブジェクトの Open でデータベースに接続する。

Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=OraOLEDB.Oracle;User ID=scott;Password=tiger;Data Source=ORCL;"

 

続けて Recordset オブジェクトの Open でデータを検索する。

引数には SQL と Connection オブジェクトを指定する。

Set rst = CreateObject("ADODB.Recordset")
rst.Open "select SYSDATE from dual", conn

 

エラーが発生しなければ、あとは Recordset に格納されたデータを参照すれば良い。

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

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

 

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

Close でオブジェクトが閉じられ、Nothing の代入でメモリから削除される。

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

'データベースとの接続を切断する
If conn.State <> 0 Then
  conn.Close
End If
Set conn = Nothing

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


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


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


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

おすすめの記事