6.2 ASPファイルからのデータベースの利用
■Connectionオブジェクトの生成
ASPファイルでデータベースにアクセスするには、いくつかの準備がいります。まず、ADOを使用できるようにするためにConnectionオブジェクトを生成する必要があります。その書式は次のようにします。
<% Set objConn = Server.CreateObject("ADODB.Connection") %>
objConnは、Connectionオブジェクトを示すオブジェクト型変数です。
■データベースへの接続
次に、使用したいデータベースに接続します。この接続にはConnectionオブジェクトのOpenメソッドを使用します。その書式は次のようにします。
<% objConn.Open "データソース名" %>
ここで、objConnは先に生成したConnectionオブジェクトの変数名と同じでなければなりません。
(例)<% objConn.Open "aspZADO" %>
■Recordsetオブジェクトの生成
データベースに接続した後は、個々の処理目的に応じて必要なテーブルやクエリーなどを開き、レコードの検索、抽出、追加、更新などの処理を行います。このとき、テーブルやクエリーなどに含まれる特定のレコードの集まりをRecordsetという概念で取り扱います。
Recordsetオブジェクトの生成法には2通りあります。Connection.Executeメソッドによる方法と、Server.CreateObjectメソッドによる方法です。
■Connection.Executeメソッド
Connection.ExecuteメソッドによりRecordsetオブジェクトを生成するには、次の書式を使います。
<% Set objRst = objConn.Execute("SQL文") %>
objRstは生成したRecordsetオブジェクトを示す変数名です。objConnは先に生成したConnectionオブジェクトの変数名と同じでなければなりません。
(例) <% Set objRst = objConn.Execute("SELECT * FROM tblName") %>
ただ、このようにExecuteメソッドで生成したRecordsetに対してはあまり複雑な処理はできません。複雑な処理を行う場合は、次のServer.CreateObjectメソッドによりRecordsetオブジェクトを生成します。
■Server.CreateObjectメソッド
Server.CreateObjectメソッドによりRecordsetオブジェクトを生成するには、次の書式を使います。
<% Set objRst = Server.CreateObject("ADODB.Recordset") %>
objRstは、Recordsetオブジェクトを示す変数名です。
次に、具体的なテーブルを開いたり、クエリーを実行したりします。その書式は次にのようになります。
<% objRst.Open SQL文またはテーブル名, objConn, カーソルの種類, ロックの種類 %>
objConnは、接続中のConnectionオブジェクトを示す変数名です。
(例) <% objRst.Open "SELECT * FROM tblName", objConn, 1, 1 %>
■クローズ
Recordsetオブジェクトの処理が終わったら、そのRecordsetオブジェクトを開放します。その書式は、次の通りです。
<% objRst.Close %>
また、データベースへのアクセスが終了したら、Connectionオブジェクトを開放します。その書式は、次の通りです。
<% objConn.Close %>
■サンプル
リスト6.1
<%
Dim objConn, objRst, strSQL
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "aspZADO"
strSQL = "SELECT * FROM tblName"
Set objRst = objConn.Execute(strSQL)
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
objRst.Close
objConn.Close
%>リスト6.2
<%
Dim objConn, objRst, strSQL
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "aspZADO"
Set objRst = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tblName"
objRst.Open strSQL, objConn, 1, 1
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
objRst.Close
objConn.Close
%>