ドリンクバーゲン会場

ストアドプロシージャの作成2008年10月14日 09時44分32秒

ストアドプロシージャの追加
.NET用の参考書がようやく届き、これからASP.NETを勉強していきたいと思います。
今回はデータベース接続をするための準備を行います。

データベース接続するには、SQLをコーディングする必要がありますが、プログラムの中にSQLコードを直接書き込むこともできますが、今回はストアドプロシージャを作成し、プログラムからはストアドプロシージャを呼び出すようにします。

よく使うSQLコードをストアドプロシージャとして登録することで、プログラム上にSQLをコーディングするよりもレスポンスを改善することができます。

例えば、学校では、各クラス毎に試験の成績の一覧表を出力しますが、クラス以外に違いがないので、ストアドプロシージャとしてSQLを登録しておけば、クラスが変わっても使いまわしてくれます。
クラスなどの変更する部分は、パラメータとして値を受け渡しできるようにしておきます。

しかし、プログラム上にSQLを作成した場合、実行するたびにそのSQLコードを毎回解釈するための処理が余計にかかってしまいます。

VisualStudioはサーバーエクスプローラから、直接SQLServerの設定を変更することができ、ストアドプロシージャの作成も行うことができます。

今回は、とりあえずテストのためにログイン用の簡単なものを作成してみます。
*******************************************
ALTER procedure ログイン
@id varchar(10),
@pass varchar(10),
@kyoin varchar(20) output
AS
select @kyoin=KYOIN from 教員
where LOGID=@id and PASS=@pass
if @@rowcount<1
begin
select @kyoin='未登録'
end
*******************************************

1行目はストアドプロシージャの名前を指定しています。
ログインという名前を付けました。
2行目から4行目はパラメータを登録しています。
ログインのためのIDとパスワードは入力用のパラメータです。
最後のkyoinは後ろに「output」とありますが、これは教師名を取得するための項目です。
ログインが完了したときにログインした先生の名前を取得します。
パラメータには、頭に必ず@をつけるようにします。

ASの下にTransact-SQL文を追加します。
教員テーブルには、ID,パスワード、名前が登録されており、IDとパスワードでチェックし名前をとってきます。
名前を取得する必要があるので、@kyoin=KYOINでパラメータへの受け渡しを設定しています。
そのあとの「If」では、データがない場合に名前を受け取るパラメータに”未登録”とセットしています。

入力できたら保存して、実行してみます。
VisualStudioのサーバーエクスプローラにログインが追加されるので、右クリックして、「実行」を選んでやると、「ストアドプロシージャの実行」という画面が出てきます。

パラメータを入力することができるので、あらかじめ登録されているIDとパスワードをセットし、「OK」ボタンで実行してください。
出力画面に教員の名前が表示されればOKです。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://n-box.asablo.jp/blog/2008/10/14/3818789/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。