Рекомендуется: используйте ASP для реализации системы онлайн -экзаменов С разработкой интернет-технологий онлайн-преподавание станет основной формой повторного образования людей и обучения на протяжении всей жизни. В онлайн -школах люди могут выбрать любой курс в любом месте, где угодно, не ограничиваясь временем и пространством. Развитие онлайн -школ предлагает разработку онлайн -экзаменов
5. возвращаемое значениеОбработка возвращающих значений функции отличается от обработки хранимых процедур, что часто приводит к путанице. В функциях логическое значение часто возвращается, чтобы указать, успешно ли работает функция или нет.
Если chephunctionname () = 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 - return Value
- Посмотрите, существует ли сотрудник с тем же именем
Если существует (выберите *
От сотрудника
Где 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
Dim Lngrecs
Dim 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, то тогда
Ответ. Напишите сотрудника с тем же именем уже существует.
Конец, если
Установить cmdemployee = ничего
%>
Следует отметить, что возвращаемое значение должно быть создано как первый параметр в наборе. Даже если возвратное значение не отображается как параметр в хранимой процедуре, это всегда первые параметры в сборе параметров.
Поделиться: ASP 3.0 Advanced Programming (тридцать шесть) Глава 8 Основы ADO В первых 7 главах этой книги она уже говорила о содержании ASP и о том, как ASP привносит динамический контент на веб -сайт. Было видно, что ее программа сценариев позволяет пользовательским веб -страницам, позволяя нам создавать более мощные ASP -страницы. Теперь ASP будет изучен