Recomendado: Use ASP para implementar o sistema de exames online Com o desenvolvimento da tecnologia da Internet, o ensino on-line se tornará a principal forma de reeducação das pessoas e educação ao longo da vida. Nas escolas on -line, as pessoas podem escolher qualquer curso em qualquer lugar, em qualquer lugar, sem serem restritas pelo tempo e pelo espaço. O desenvolvimento das escolas on -line propõe o desenvolvimento de exames on -line
5. Valor de retornoO processamento dos valores de retorno da função é diferente do processamento de procedimentos armazenados, o que geralmente leva à confusão. Nas funções, um valor booleano é frequentemente retornado para indicar se a função é executada com sucesso ou não.
Se algumfunctionName () = true então
'A função foi bem -sucedida
No entanto, ao chamar um procedimento armazenado, o mesmo método não pode ser usado porque o armazenamento é executado com o método Execute e retorna um conjunto de registros.
Definir rsauthors = cmdauthors.execute
Se você não conseguir obter um valor de retorno, como determina se o procedimento armazenado foi executado corretamente? Quando ocorre um erro, é relatado um erro para que o código de manuseio de erros fornecido no capítulo anterior possa ser usado para lidar com o erro. Mas o que fazer com alguns erros lógicos não fatais?
Por exemplo, considere adicionar um novo funcionário à tabela de funcionários. Você pode não querer impedir que dois funcionários tenham o mesmo nome, mas deseja indicar essa situação. Em seguida, um valor de retorno pode ser usado para indicar se já existe um funcionário com o mesmo nome. O procedimento armazenado é o seguinte:
Crie procedimento USP_ADDEMPLAPEE
@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
COMO
COMEÇAR
Declare @exists int - Valor de retorno
- Veja se existe um funcionário com o mesmo nome
Se existe (selecione *
De funcionário
Onde fname = @fname
E minit = @Minit
E lname = @lName)
Selecione @Exists = 1
OUTRO
Selecione @Exists = 0
Insira em funcionário (emp_id, fname, minit, lname,
job_id, job_lvl, pub_id, hire_date)
Valores (@emp_id, @fname, @Minit, @LName, @JOB_ID,
@Job_lvl, @pub_id, @hire_date)
Retornar @Exists
FIM
O processo primeiro verifica se existem funcionários com o mesmo nome e define a variável correspondente existe de acordo. Se existir o mesmo nome, ele será definido como 1, caso contrário, é 0. Adicione a equipe à tabela e retorne o valor de existe como o valor de retorno.
Observe que, embora um valor seja retornado, ele não é declarado como um parâmetro para o procedimento armazenado.
O código ASP que chama esse procedimento é o seguinte:
<!-#include arquivo = ../incluir/conexão.asp->
<%
Dim CMDemployee
Dim lngrecs
Dim lngadded
Set cmDemployee = server.createObject (adodb.command)
'Defina as propriedades do comando
Com cmdemployee
.ActiveConnection = strConn
.CommandText = USP_ADDEMPLAYEE
.CommandType = adcmdStoredProc
'Crie os parâmetros
'Observe que o valor de retorno é o primeiro parâmetro
.Parameters.append .createParameter (return_value, adinteger, _
adparamReTurnValue)
.Parameters.append .createParameter (@emp_id, adcara, 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)
'Defina os valores dos parâmetros
.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 o procedimento armazenado
.Execute lngrecs ,, adexecutenOrecords
'Extraia o valor de retorno
lngadded = .parameters (return_value)
Termine com
Response.Write New funcionário adicionado. <p>
Se lngadded = 1 então
Response.Write um funcionário com o mesmo nome já existe.
Final se
Definir CMDemployee = nada
%>
Deve -se notar que o valor de retorno deve ser criado como o primeiro parâmetro no conjunto. Mesmo que o valor de retorno não apareça como um parâmetro no procedimento armazenado, é sempre os primeiros parâmetros na coleção Parâmetros.
Compartilhar: ASP 3.0 Programação avançada (trinta e seis) Capítulo 8 Noções básicas de ADO Nos 7 primeiros capítulos deste livro, ele já falou sobre o conteúdo do ASP e como o ASP traz conteúdo dinâmico para o site. Foi visto que seu programa de script permite páginas da Web personalizadas, permitindo -nos criar páginas ASP mais poderosas. Agora, asp serão estudados