권장 : ASP를 사용하여 온라인 시험 시스템을 구현하십시오 인터넷 기술의 발전으로 온라인 교육은 사람들의 재교육과 평생 교육의 주요 형태가 될 것입니다. 온라인 학교에서 사람들은 시간과 공간에 의해 제한되지 않고 어디서나 어디서나 모든 코스를 선택할 수 있습니다. 온라인 학교의 개발은 온라인 시험 개발을 제안합니다.
5. 반환 값기능 반환 값의 처리는 저장된 절차의 처리와 다르며, 종종 혼란을 초래합니다. 함수에서 부울 값은 종종 함수가 성공적으로 실행되는지 여부를 나타내는 경우가 종종 반환됩니다.
if nomeFunctionName () = true 인 경우
'기능이 성공했습니다
그러나 저장 프로 시저를 호출 할 때 스토리지가 실행 메소드와 함께 실행되고 레코드 세트를 반환하기 때문에 동일한 방법을 사용할 수 없습니다.
rsauthors = cmdauthors.execute를 설정하십시오
반환 값을 얻을 수없는 경우 저장 프로 시저가 올바르게 실행되었는지 어떻게 결정합니까? 오류가 발생하면 이전 장에 제공된 오류 처리 코드를 사용하여 오류를 처리 할 수 있도록 오류가보고됩니다. 그러나 치명적이지 않은 논리적 오류로 어떻게해야합니까?
예를 들어, 새로운 직원을 직원 테이블에 추가하는 것을 고려하십시오. 두 명의 직원이 같은 이름을 갖지 못하게하고 싶지는 않지만이 상황을 표시하려고합니다. 그런 다음 반환 값을 사용하여 이름이 같은 서기가 이미 존재하는지 여부를 표시 할 수 있습니다. 저장 절차는 다음과 같습니다.
절차를 만듭니다. 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- 리턴 값을 선언합니다
- 이름이 같은 직원이 존재하는지 확인하십시오.
존재하는 경우 (선택 *
직원으로부터
여기서 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) set
'명령의 속성을 설정하십시오
cmdemployee와 함께
.ActiveConnection = strconn
.commandText = usp_addemployee
.CommandType = adcmdstordProc
'매개 변수를 만듭니다
'반환 값이 첫 번째 매개 변수임을 알 수 있습니다.
.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)
끝납니다
응답. 신입 사원 추가. <p>
lngadded = 1 인 경우
응답. 이미 동일한 이름을 가진 직원이 이미 존재합니다.
끝 If
cmdemployee = 아무것도 설정하지 않습니다
%>
리턴 값은 세트의 첫 번째 매개 변수로 작성해야합니다. 리턴 값이 저장 프로 시저에서 매개 변수로 나타나지 않더라도 항상 매개 변수 수집의 첫 번째 매개 변수입니다.
공유 : ASP 3.0 고급 프로그래밍 (36) 8 장 ADO의 기본 사항이 책의 첫 7 장에서 이미 ASP의 내용과 ASP가 웹 사이트에 동적 컨텐츠를 제공하는 방법에 대해 이미 이야기했습니다. 스크립팅 프로그램을 사용하면 사용자 정의 웹 페이지가 허용되어보다 강력한 ASP 페이지를 빌드 할 수 있습니다. 이제 ASP가 연구 될 것입니다