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
アカウントを作成 して、もっと沢山の記事を読みませんか?
この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。
この記事にコメントをしてみませんか?