次の方法で共有


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

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

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

まとめ

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

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

  1. 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 サンプル データベースのダウンロード

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

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

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

      Command.Parameters.Append myParameter
      

      Note

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

      Note

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

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

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

    Note

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

    Command.Parameters.Refresh
    

関連情報

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