SAK 図書館
ASP VB Script 基礎実地編7 - データベース問い合わせ、フォームによる照会
■データベース問い合わせ - フォームによる照会
・リクエストフォームから呼ばれるデータベース問い合わせの ASP は、
test1.asp として、次のように作成下さい。
・test1.asp が作成できれば、先のフォーム test0.asp を呼び出します。
・フォームのキーとデータ1 に何も入力せずに「検索」ボタンを押すと、
全件がリストアップされる。
・フォームのキーに「c0」と入力、データ1 を空で「検索」ボタンを押すと、
キーの先頭が「c0」で始まるものが、1 件リストアップされる。
・フォームのキーを空で、データ1 に「104」と入力して「検索」ボタンを
押すと、データ1 が 104 以上のものが、3 件リストアップされる。
・フォームのキーに「e」と入力、データ1 に「104」と入力して「検索」
ボタンを押すと、キーが「e」で始まり、データ1 が 104 以上のものが、
1 件リストアップされる。
少し、テストデータの中身が悪い。e010 などのデータを追加してテストす
ると、より効果的な問い合わせ実習ができる。
・test1.asp では、データベース接続や問い合わせクエリ発行でエラーが発生
すると、その旨のエラーメッセージが表示される。
ASP が異常終了するとこのないようにエラートラップしている。
<%@ Language=VBScript %>
<%
'=======================================================================
' test1.asp データベース問い合わせ
'=======================================================================
const title = "データベース問い合わせ"
const dsn = "dsn=SAK3_ADO;uid=SAK;pwd=SAK"
const dcr = 3 '** adUseClient
const dbi = "*"
const dbf = "sak.テストm"
const dbo = "order by キー"
dim sql, rs, ct, tdal, i, s
dim dbw, quw, p1, p2
dim errmsg
'** エラートラップ
on error resume next
'** パラメタ取得
p1 = trim(request.querystring("p1"))
if p1 = "" then p1 = trim(request.form("p1"))
p2 = trim(request.querystring("p2"))
if p2 = "" then p2 = trim(request.form("p2"))
if p1 <> "" then dbw = dbw & " and キー like '" & p1 & "%'"
if p2 <> "" then dbw = dbw & " and データ1 >= " & p2
if dbw <> "" then
quw = mid(dbw, 6)
dbw = "where " & quw
end if
if quw = "" then quw = "全件"
'** データベース接続
if isempty(session("s3cn_ado")) then
err = 0
set session("s3cn_ado") = server.CreateObject ("ADODB.Connection")
session("s3cn_ado").Open dsn
session("s3cn_ado").CursorLocation = dcr
if err <> 0 and errmsg = "" then errmsg = "データベース接続エラー"
end if
'** クエリ発行
sql = "select " & dbi & " from " & dbf & " " & dbw & " " & dbo
err = 0
set rs = session("s3cn_ado").Execute(sql)
if err <> 0 and errmsg = "" then errmsg = "クエリ発行エラー"
'** エラー処理
if errmsg <> "" then
response.write("<P>" & errmsg & "</P>")
else
%>
<HTML>
<HEAD>
<TITLE><% = title %></TITLE>
</HEAD>
<BODY>
<%
'** データリストアップ
response.write("<P>-- " & title & " --<BR>")
response.write("抽出条件 - " & quw & "<BR><BR>")
response.write("<TABLE rules=ALL bgcolor=#b0b0b0 border=0 cellPadding=3 cellSpacing=2><TBODY>")
response.write("<TR bgcolor=#d0d0d0>")
response.write("<TD>リスト番号</TD>")
for i = 0 to rs.fields.count - 1
response.write("<TD>" & rs(i).name & "</TD>")
next
response.write("</TR>")
ct = 0
do until rs.eof
ct = ct + 1
s = right("000000" & ct, 6)
response.write("<TR bgcolor=#f0f0f0>")
response.write("<TD>" & s & "</TD>")
for i = 0 to rs.fields.count - 1
if rs(i).type <> 131 and rs(i).type <> 139 then
tdal = ""
else
tdal = " align=right"
end if
response.write("<TD" & tdal & ">" & rs(i) & "</TD>")
next
response.write("</TR>")
rs.movenext
loop
response.write("</TBODY></TABLE>")
response.write("</P>")
'** レコードセットクローズ
rs.close
%>
</BODY>
</HTML>
<%
end if
%>
■ASP VB Script 基礎実地編資料
■ASP VB Script 基礎編資料
■ASP VB Script ADO + SQL 応用編資料
■ASP VB Script oo4o + SQL 応用編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料