6.4 SQLの実行/SELECT
 SELECT文を実行し結果を取得したいときの方法です。SELECT文を実行するときは、ADOオブジェクトのExecuteというメソッドで行います。

 そして、このメソッドを実行するとレコードセットオブジェクトという物が作成され、そこからレコードやフィールドを取り出します。メソッドが違うだけで、ココのネタ(Accessのところ)にある5.6 SQLを実行する1と同じです。実は、このページに書いてあることも、ほとんど同じだったり…でも、手抜きじゃないです(汗)
使用例
 SELECT文を実行するときのExecuteの使い方です。例では、ODBCデータソースのADRDBにある住所録テーブルというテーブルから、SELECT文でデータを取り出し、取り出したデータ全てを表示しています。ちなみに、テーブルのレイアウトはAccessネタで使った住所録テーブルと同じです。詳しくは、Accessネタ住所録を作ってみようの2.住所録テーブルの作成を参照してください。

 SELECT文を実行しているのは@の部分です。ExecuteメソッドのパラメタにSQL文を指定します。実行した結果は、レコードセットオブジェクトとしてobjRSに入ります。なお、レコードセットオブジェクトのメソッドやフィールドの値を取り出すときの方法(A〜Dのところ)は、ココのネタ(Accessのところ)にある5.6 SQLを実行する1と同じなので、そちらを参照してください。

 それと、SELECT文でも何らかの原因でSQLエラーが出ることがあります。エラー情報の取得については、6.5 SQLの実行2をどうぞ。

 ■VBScriptでの記述例
Option Explicit

Dim objADO
Dim objRS
Dim i

'ADOオブジェクトを作成します
Set objADO = CreateObject("ADODB.Connection")

'ADOを使いADRDBというデータソースをオープンします
objADO.Open "DSN=ADRDB;"

'@SQLを実行します
Set objRS = objADO.Execute("select * from 住所録テーブル")

'ASQLの実行結果をデータが無くなるまで表示します
Do Until objRS.Eof = True

    'Bフィールド値の表示
    WScript.echo "漢字氏名:" & objRS("漢字氏名") & " 性別:" & objRS("性別")

    'Cカーソルを次の行へ
    objRS.MoveNext

Loop

'Dレコードセットをクローズします
objRS.Close

'データベースをクローズします
objADO.Close

'オブジェクトの破棄
Set objRS = Nothing
Set objADO = Nothing

 ■JScript(JavaScript)での記述例
//ADOオブジェクトを作成します
var objADO = new ActiveXObject("ADODB.Connection");

//ADOを使いADRDBというデータソースをオープンします
objADO.Open("DSN=ADRDB;");

//@SQLを実行します
var objRS = objADO.Execute("select * from 住所録テーブル");

//ASQLの実行結果をデータが無くなるまで表示します
do {

    //Bフィールド値の表示
    WScript.echo("漢字氏名:" + objRS("漢字氏名") + " 性別:" + objRS("性別"));

    //Cカーソルを次の行へ
    objRS.MoveNext();

} while(objRS.Eof==false);

//Dレコードセットをクローズします
objRS.Close()

//データベースをクローズします
objADO.Close()

//オブジェクトの破棄
objRS = null;
objADO = null;

Copyright(C) 1999-2014 結城圭介(Ver.3.51) All rights reserved