ASP ページからストアド プロシージャSQL Server実行する

この記事では、ストアド プロシージャSQL Server実行し、Active Server Pages (ASP) ページからパラメーターを使用する方法について説明します。

元の製品バージョン:インターネット インフォメーション サービス
元の KB 番号: 300488

概要

この記事では、ASP ページで ActiveX データ オブジェクト (ADO) を使用する手順について理解していることを前提としています。

ステップ バイ ステップの例

  1. クエリ アナライザーで次のクエリSQL Server実行するか、Pubs データベースに対して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) を返します。

    注:

    既定では、Northwindサンプル データベースと pubs サンプル データベースは、SQL Server 2005 にはインストールされません。 これらのデータベースは、Microsoft ダウンロード センターからダウンロードできます。 Northwind サンプル データベースと pubs サンプル データベースをダウンロードする方法の詳細については、次の Microsoft Web サイトを参照してください。 Northwind と pubs サンプル データベースのダウンロード

  2. 次の ASP サンプル コードは、新しく作成されたストアド プロシージャを呼び出します。 この ASP コードを使用して、入力パラメーターを設定し、クエリを実行できます。

    1. メソッドを CreateParameter 使用して、次のように ADO でパラメーターを作成します。

      Set myParameter = Command.CreateParameter (Name, [Type], [Direction], [Size], [Value])
      
    2. パラメーターを Parameters コレクションに次のように追加しました。

      Command.Parameters.Append myParameter
      

      注:

      Parameters コレクション内のパラメーターは、ストアド プロシージャ内のパラメーターの順序と一致する必要があります。

    3. コマンドを実行して、ストアド プロシージャのパラメーター値を次のように渡します。

      <%
      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
      %>
      

      注:

      このサンプルで使用される定数は、 Adovbs.inc ファイルにあります。 このファイルは、Active Server Pages のセットアップ中にインストールされ、通常はフォルダー内にあるフォルダーに\Inetpub配置\Aspsamp\Samplesされます。 コードの読み取りと保守が容易になるように、ストアド プロシージャを呼び出すときに数値ではなく定数を使用することをお勧めします。

       <%@ LANGUAGE = VBScript %>
       <!-- #INCLUDE VIRTUAL="/ASPSAMP/SAMPLES/ADOVBS.INC" -->
      
  3. 環境に応じて ADO 接続文字列を変更します。

  4. ASP ページを保存し、ブラウザーで表示します。

    注:

    ストアド プロシージャのパラメーター情報を認識していない場合、ストアド プロシージャを適切に呼び出す方法を判断するのは困難な場合があります。 正しい情報がないと、ADO パラメーターを適切に作成できません。 Parameter オブジェクトの Refresh メソッドを使用すると、サーバー上のストアド プロシージャの定義に基づいて Parameters コレクションを自動的に設定できます。 例:

    Command.Parameters.Refresh
    

関連情報

詳細については、「ADO.NET を使用して単純なデータ アプリケーションを作成する」を参照してください。