人気ブログランキング | 話題のタグを見る
パラメータクエリ(ADO + VBS + MSSQL)
ここでは、商品カテゴリーをクエリパラメータとして受け取り、
それをそのままパラメータとしてDBを検索する方法を説明。
また、商品はランダムに並び替える。

コマンドパラメータの設定方法を覚えるために、ここに記す。
対象は、ADO + VBS + MSSQL。

<%
Dim conn, cmd, rs, strCategory

' カテゴリ文字列をとりあえず配列に
strCategory = Request("category")
If strCategory = "" Then
    Response.Write "Bad Request: カテゴリが指定されていません."
    Response.End
End If

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open CONN_STRING    ' 環境に合わせて適切な接続文字列を使用する
If Err.Number <> 0 Then
    Response.Write "DB Error: データベースが開けません."
    Response.End
End If

Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandText = "get_category_items"    ' ストアドプロシージャ名
cmd.CommandType = adCmdStoredProc    ' ストアドプロシージャをコール(4)
cmd.Parameters.Append cmd.CreateParameter("@category", 200, adParamInput, 255, strCategory)
Set rs = cmd.Execute()

Do While Not rs.EOF
    If Not Response.IsClientConnected Then
        Response.End
    End If
    Response.Write "<div>"
    Response.Write "ID: " & rs("id") & "<br>"
    Response.Write "Name: " & rs("name") & "<br>"
    Response.Write "Price: " & FormatCarancy(rs("price")) & "<br>"
    Response.Write "</div>"
    rs.MoveNext
Loop
rs.Close
%>

このスクリプトは、次のようなストアドプロシージャが
登録されている事を前提としている。

CREATE PROCEDURE dbo.get_category_items
    @category varchar(255)
AS

SELECT * FROM Products WHERE [category] = @category ORDER BY NewID()
GO

ソニーストア

by isoq | 2005-05-26 16:22 | データベース
<< 駅で小虫が大量発生 セシールの2005年夏カタログ... >>