ユーザー認証プログラムを作成する場合、ASP を使用して SQL ステートメントを呼び出して、データ テーブルに条件に一致するレコードがあるかどうかを取得し、ASP を使用して関連する処理を実行するのが簡単です。
すべての道はローマに通ず!もちろん、SQL SERVER データベースのストアド プロシージャを使用して、この機能を簡単に実装することもできます。これは比較的複雑ですが、ストアド プロシージャはデータベース内でコンパイルされたプログラムであり、ASP を使用して、そこで使用されるさまざまなパラメータを正しく渡すだけでよいため、効率の向上は明らかです。
この記事では、ASP でパラメーターを使用してストアド プロシージャを呼び出す方法を、簡単な例を通じて主に紹介します。そこからさらにインスピレーションを得られることを願っています。
最初のステップは、データ テーブル userinfo を作成することです。
id int(4) が null ではありません。
フルネーム varchar(50) が null ではありません。
パスワード varchar(20) が null ではありません。
nikename varchar(50) not null
2 番目のステップは、ストアド プロシージャ usercheck を作成することです
CREATE プロシージャ usercheck
@infullname varchar(50)、
@inpassword varchar(50)、
@outcheck char(3) 出力
として
存在する場合 (フルネーム = @infullnameおよびパスワード = @inpasswordのユーザー情報から * を選択)
@outcheck='はい'を選択してください
それ以外
select @outcheck='no'
注: ここでは、3 つのパラメーターを持つストアド プロシージャが作成されます。最初のパラメーター @infullname は入力パラメーター (ユーザー名) であり、2 番目のパラメーター @inpassword も入力パラメーター (パスワード) です。パラメータ @outcheck、これは出力パラメータです (このユーザーが存在するかどうかにかかわらず)。出力パラメータを定義するときは、データ型の後に「OUTPUT」という単語を追加する必要があります。
次に、最初の 2 つの入力パラメータを取得して、SQL ステートメントに資格のあるユーザーが存在するかどうかを取得します。存在する場合、出力パラメータの値は「yes」、そうでない場合は「no」になります。
3 番目のステップは、ASP プログラムを作成し、ストアド プロシージャ
<%
を呼び出すことです。
'フォーム送信フラグ
if request("ok")=1 then
'データベース接続を確立します
Set Comm=Server.CreateObject("ADODB.Command")
Comm.ActiveConnection="DSN=localserver;UID=sa;PWD=;Database=chaiwei"
'comm オブジェクトとのストアド プロシージャ接続を確立します。4 は接続タイプがストアド プロシージャであることを意味します
Comm.CommandText="ユーザーチェック"
Comm.CommandType=4
' p1 を名前として comm オブジェクトのパラメータ メソッドを作成します。最初のパラメータ fullname を p1 コレクション 'fullname' に追加します。最初のパラメータの名前は '200 と呼ばれます。パラメータ タイプ varchar タイプ '1 入力へのパラメータ フロー。入力は 1、出力は 2 です。
'50 パラメータ長 50
'request("fullname") パラメータの初期値を代入
Set p1=Comm.CreateParameter("fullname",200,1,50,request("fullname"))
Comm.Parameters.Append p1
' p1 という名前で comm オブジェクトのパラメータメソッドを作成します。 2 番目のパラメータのパスワードを p1 コレクションに追加します
'詳細は上記と同じ
Set p1=Comm.CreateParameter("パスワード",200,1,20,request("パスワード"))
Comm.Parameters.Append p1
' p1 という名前で comm オブジェクトのパラメータメソッドを作成します。 3 番目のパラメーター チェックを p1 コレクションに追加します
'129 パラメータの型 char 型
'2 出力までのパラメータの流れ
'3 パラメータの長さ 3
Set p1=Comm.CreateParameter("チェック",129,2,3)
Comm.Parameters.Append p1
'ストアドプロシージャを実行します
通信実行
'結果を提案して処理する
comm("check")="はい" の場合
response.write "システムへようこそ! ユーザー名:" & comm("フルネーム") & "パスワード:" & comm("パスワード")
それ以外
response.write "申し訳ありませんが、まだ登録されていません。"
end if
'接続を解放する
Comm=nothing を設定します
else
'形成部分
%>