ASPでデータベースをアクセスするWebアプリケーションの仕組みは、JSPと基本的には同じです。ユーザーの入力した商品コードをキーに、商品の情報を記録しているデータベース“在庫.mdb”のテーブル“T_在庫”から情報を取り出し、その内容をブラウザに表示する――という処理を見てみましょう。
- キー入力用HTMLファイル~zaikoq1.htm(リスト1) -
FORMタグを使ったデータ入力用のHTMLファイルです。
テキストボックス(ItemNum)に入力された値が、[検索]ボタン(submit)をクリックすることでWebサーバーに送信され、“finditem.asp”に渡されます。
リスト1:商品コードを入力するためのHTMLファイル~zaikoq1.htm
- 検索結果表示用aspファイル~finditem.asp(リスト2) -
zaikoq1.htmのテキストボックス“ItemNum”に入力された値(商品ID)を受け取り、データベース“在庫.mdb”のテーブル“T_在庫”から該当するレコードを検索して、その内容を表示する処理を記述しています。
スクリプトは<%~%>の間に記述し、それ以外の箇所には通常のHTMLタグを記述できます。このあたりの仕様はJSPと同じです。なお、既に述べたようにASPが先に存在し、JSPがその仕様をお手本にしたのです。
ADOを介したデータベースのオープン処理は、以下のようになります。
Set AdoCon = Server.CreateObject("ADODB.Connection")
AdoCon.open "Driver={Microsoft Access Driver (*.mdb)};
Dbq=C:\Db\在庫.mdb; "
SQL文を文字列定数で定義しておき、それにクライアントから送信されてきたテキストボックスの値(ユーザーの入力した商品ID)を付け足して、クエリ文字列を作ります。
SqlStr = "SELECT T_在庫.商品ID, T_在庫.商品名,
T_在庫.在庫数 FROM T_在庫 WHERE T_在庫.商品ID="
SqlStr =SqlStr & Request.Form("ItemNum")
生成したSQL文をConnectionオブジェクトのexecuteメソッドで実行し、その結果をRecordsetオブジェクトに受け取ります。
Set rs = AdoCon.execute(SqlStr)
Recordsetオブジェクトに格納されているフィールドの値を、変数に保存しておきます。
ItemId = rs.Fields("商品コード")
ItemName = rs.Fields("商品名")
Amount = rs.Fields("在庫数")
このようにASPでは、データアクセス・オブジェクトを介してデータベースにSQLを送って処理を行い、その結果をHTMLのタグを使って提示できるため、業務処理で帳票形式の表示を行う場合に便利です。
リスト2:商品テーブルを検索して結果を表示するASPファイル~finditem.asp
|
|
|