ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(ODBCドライバ編)

D.4.2 データの参照

ADOでの連携でデータの参照を行う方法について説明します。

本サンプルコードは、取得データをWebページ上にて表示します。

アプリケーションの手順

  1. コネクションを接続します。詳細は、“D.4.1 接続および切断”を参照してください。

  2. Recordsetオブジェクトを生成します。

  3. Recordset.OpenメソッドでRecordsetオブジェクトを開きます。

  4. Recordsetオブジェクトよりデータを取得します。
    Recordset.EOFプロパティでカレント行がEOFかを確認します。
    Fields.Countプロパティで列数を確認します。
    Field.Valueプロパティでデータを取得します。
    Recordset.MoveNextメソッドでカレント行を次の行へと移動します。

  5. Recordset.CloseメソッドでRecordsetオブジェクトを閉じます。

  6. コネクションを切断します。

  7. オブジェクトを破棄します。

エラー処理については、“D.4.10 エラー処理”を参照してください。

注意

Recordset.EOFプロパティでカレント行がEOFかどうか確認後は、以下のエラーがアプリケーション側で認識できなくなります。

  • JYP2099E デッドロックが発生しました.

  • JYP5014E スキーマ“@1@”の表“@2@”は占有中です.

これらのエラーをアプリケーション側で認識するタイミングは、Recordset.MoveFirstメソッドを実行するか、データを参照した時です。上記エラーを認識するためには、EOFプロパティを確認せずにMoveFirstメソッドの実行またはデータを参照してください。

ただし、SELECT文の検索結果が0件であった場合、Visual Basicの実行時エラー“3021”が発生します。エラー処理については、“D.4.10 エラー処理”を参照してください。

<%@ language="vbscript" %>
<!-- #include file = "adovbs.inc" -->
<html>
<head>
<title>データの参照</title>
</head>
<body bgcolor="White">

<b>データの参照</b>

<hr>

<%
'宣言
Dim OBJdbConnection
Dim RecordSetObj

Dim msgstr

'Connectionオブジェクトの生成と設定
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.ConnectionString = "DSN=DSN01;UID=USER01;PWD=PASS01"

'1. コネクション接続
OBJdbConnection.Open

'2. Recordsetオブジェクトの生成
Set RecordSetObj = Server.CreateObject("ADODB.Recordset")

'3. Recordsetオブジェクトを開く
RecordSetObj.Open "SELECT * FROM TESTTBL", OBJdbConnection, _
                  adOpenForwardOnly, _
                  adLockReadOnly, _
                  adCmdText

'4. データの取得'最終行まで繰り返し
Do Until RecordSetObj.EOF
    '列数の取得
    For i = 0 To RecordSetObj.Fields.Count - 1
        'データの取得
        msgstr = msgstr & RecordSetObj.Fields(i).Value & " "
    Next
    msgstr = msgstr & "<br>"
    '行の位置づけ
    RecordSetObj.MoveNext
Loop

'取得データの表示
Response.Write "Recordset<br>" & msgstr

'5. Recordsetオブジェクトを閉じる
RecordSetObj.Close

'6. コネクション切断
OBJdbConnection.Close

'7. オブジェクトの破棄
Set RecordSetObj = Nothing
Set OBJdbConnection = Nothing

%>

<hr>

</body>
</html>