Webアプリ開発事始 第14回

WindowsのサーバーサイドWebアプリ実行環境
~ASP
長谷川裕行
有限会社 手國堂

ASPのサンプル(1)~データベースの検索

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





トップページ
WindowsのWebサーバー
ASP~動的Webサイトの実行環境
ASPのサンプル(1)~データベースの検索
キー入力用HTMLファイル~zaikoq1.htm(リスト1)
検索結果表示用aspファイル~finditem.asp(リスト2)
ASPのサンプル(2)~表形式の出力
あとがき

Copyright © MESCIUS inc. All rights reserved.