推奨:ASPを使用して、オンライン試験システムを実装しますインターネットテクノロジーの開発により、オンライン教育は人々の再教育と生涯教育の主な形になります。オンラインスクールでは、人々は時間と空間で制限されることなく、どこでもどこでもコースを選択できます。オンライン学校の開発は、オンライン試験の開発を提案しています
5。返品値関数の戻り値の処理は、ストアドプロシージャの処理とは異なり、多くの場合、混乱につながります。関数では、機能が正常に実行されるかどうかを示すために、ブール値が返されることがよくあります。
sonefunctionname()= trueの場合
'機能が成功しました
ただし、ストアドプロシージャを呼び出す場合、ストレージが実行方法で実行され、レコードセットを返すため、同じ方法を使用できません。
rsauthors = cmdauthors.executeを設定します
返品値を取得できない場合、ストアドプロシージャが正しく実行されたかどうかをどのように判断しますか?エラーが発生すると、エラーが報告されるため、前の章で提供されたエラー処理コードを使用してエラーを処理できます。しかし、いくつかの致命的な論理エラーをどうするか?
たとえば、従業員のテーブルに新しい従業員を追加することを検討してください。 2人の従業員が同じ名前を持たないようにしたくないかもしれませんが、この状況を示したいと思います。次に、返品値を使用して、同じ名前の店員がすでに存在するかどうかを示すことができます。ストアドプロシージャは次のとおりです。
手順USP_Addemployeeを作成します
@emp_id char(9)、
@fname varchar(20)、
@minit char(1)、
@lname varchar(30)、
@job_id smallint、
@job_lvl tinyint、
@pub_id char(4)、
@hire_date DateTime
として
始める
@exists intを宣言 - 返品値
- 同じ名前の従業員が存在するかどうかを確認します
存在する場合(select *
従業員から
ここで、fname = @fname
およびminit = @minit
およびlname = @lname)
@exists = 1を選択します
それ以外
@exists = 0を選択します
従業員への挿入(emp_id、fname、minit、lname、
job_id、job_lvl、pub_id、hire_date)
値(@emp_id、@fname、@minit、@lname、@job_id、
@job_lvl、@pub_id、@hire_date)
@existsを返します
終わり
このプロセスは、最初に同じ名前の従業員がいるかどうかを確認し、それに応じて対応する変数を設定します。同じ名前が存在する場合、それは1に設定されます。そうでなければ0です。次にスタッフをテーブルに追加し、返品値として存在する値を返します。
値は返されますが、ストアドプロシージャのパラメーターとして宣言されていないことに注意してください。
この手順を呼び出すASPコードは次のとおりです。
<! - #include file = ../include/connection.asp>
<%
Dim Cmdemployee
薄暗いlngrecs
薄暗いlngadded
cmdemployee = server.createobject(adodb.command)を設定します
'コマンドのプロパティを設定します
cmdemployeeと
.activeconnection = strconn
.commandtext = usp_addemployee
.commandType = adcmdstoredProc
'パラメーターを作成します
'返品値が最初のパラメーターであることに注意してください
.parameters.append .createparameter(return_value、adinteger、_
adparamreturnvalue)
.parameters.append .createparameter(@emp_id、adchar、adparaminput、9)
.parameters.append .createparameter(@fname、advarwchar、adparaminput、20)
.parameters.append .createparameter(@minit、adchar、adparaminput、1)
.parameters.append .createparameter(@lname、advarwchar、adparaminput、30)
.parameters.append .createparameter(@job_id、adsmallint、adparaminput)
.parameters.append .createparameter(@job_lvl、adunsignedtinyint、adparaminput)
.parameters.append .createparameter(@pub_id、adchar、adparaminput、4)
.parameters.append .createparameter(@hire_date、addbtimestamp、_
AdParaminput、8)
'パラメーター値を設定します
.Parameters(@emp_id)= request.form(txtempid)
.Parameters(@fname)= request.form(txtfirstname)
.Parameters(@minit)= request.form(txtinitial)
.Parameters(@lname)= request.form(txtlastname)
.Parameters(@job_id)= request.form(lstjobs)
.Parameters(@job_lvl)= request.form(txtjoblevel)
.Parameters(@pub_id)= request.form(lstpublisher)
.Parameters(@hire_date)= request.form(txthiredate)
'ストアドプロシージャを実行します
.execute lngrecs、、adexecutenorecords
'返品値を抽出します
lngadded = .parameters(return_value)
で終わります
Response.write新しい従業員が追加されました。<p>
lngadded = 1の場合
Response.同じ名前の従業員を作成しています。
ifを終了します
cmdemployee = Nothingを設定します
%>
返品値は、セットの最初のパラメーターとして作成する必要があることに注意してください。返品値がストアドプロシージャのパラメーターとして表示されない場合でも、それは常にパラメーターコレクションの最初のパラメーターです。
共有:ASP 3.0高度なプログラミング(36)第8章ADOの基本この本の最初の7章では、ASPのコンテンツとASPがWebサイトに動的コンテンツをどのようにもたらすかについてすでに説明しています。スクリプトプログラムにより、カスタムWebページが許可されているため、より強力なASPページを構築できるようになりました。今、ASPが研究されます