この記事では、SQL Server ストアド プロシージャを実行し、Active Server Pages (ASP) ページからパラメーターを使用する方法について説明します。
元の製品バージョン: インターネット インフォメーション サービス
元の KB 番号: 300488
まとめ
この記事では、ASP ページで ActiveX データ オブジェクト (ADO) を使用する手順を理解していることを前提としています。
ステップ バイ ステップの例
Pubs データベースに対して、SQL Server Query Analyzer または SQL Server Management Studio で次のクエリを実行します。
CREATE proc MyProc ( @price smallint, @out smallint OUTPUT ) AS Select @out = count(*) from titles where price < @price GO
ストアド プロシージャ (
MyProc
) は、1 つの入力パラメーター (@price
) を受け取り、1 つの出力パラメーター (@out
) を返します。Note
既定では、
Northwind
サンプル データベースと pubs サンプル データベースは SQL Server 2005 にはインストールされません。 これらのデータベースは、Microsoft ダウンロード センターからダウンロードできます。 Northwind サンプル データベースと pubs サンプル データベースをダウンロードする方法の詳細については、次の Microsoft Web サイトを参照してください。 Northwind および pubs サンプル データベースのダウンロード次の ASP サンプル コードは、新しく作成されたストアド プロシージャを呼び出します。 この ASP コードを使用して、入力パラメーターを設定し、クエリを実行できます。
CreateParameter
メソッドを使用して、ADO で次のようにパラメーターを作成します。Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
パラメーターを Parameters コレクションに次のように追加しました。
Command.Parameters.Append myParameter
Note
Parameters コレクション内のパラメーターは、ストアド プロシージャ内のパラメーターの順序と一致する必要があります。
次のように、コマンドを実行して、ストアド プロシージャとの間でパラメーター値を渡します。
<% Dim cmd Dim ln Dim retCount Set cmd = Server.CreateObject("ADODB.Command") With cmd .ActiveConnection = "Paste your connection string here" .Commandtext = "MyProc" .CommandType = adCmdStoredProc .Parameters.Append .CreateParameter("@price", adSmallInt, adParamInput, 10).Parameters("@price") = 22 .Parameters.Append .CreateParameter("@retValue", adSmallInt, adParamOutput, 10).Execute ln, , adExecuteNoRecords retCount = .Parameters("@retValue") End with Response.Write retcount Set cmd = Nothing %>
Note
このサンプルで使用される定数は、 Adovbs.inc ファイルにあります。 このファイルは、Active Server Pages のセットアップ中にインストールされ、通常は
\Inetpub
フォルダーにある\Aspsamp\Samples
フォルダーに配置されます。 コードの読み取りと保守が容易になるように、ストアド プロシージャを呼び出すときは、数値ではなく定数を使用することをお勧めします。<%@ LANGUAGE = VBScript %> <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
環境に合わせて ADO 接続文字列を変更します。
ASP ページを保存し、ブラウザーで表示します。
Note
ストアド プロシージャのパラメーター情報が認識されない場合、ストアド プロシージャを適切に呼び出す方法を判断するのは困難な場合があります。 正しい情報がないと、ADO パラメーターを正しく作成できません。 Parameter オブジェクトの Refresh メソッドを使用すると、サーバー上のストアド プロシージャの定義に基づいて、Parameters コレクションを自動的に設定できます。 例えば次が挙げられます。
Command.Parameters.Refresh
関連情報
詳細については、「 ADO.NETを使用して単純なデータ アプリケーションを作成する」を参照してください。