Quando escrevemos um programa de autenticação de usuário, é fácil usar ASP para chamar instruções SQL para recuperar se há registros que correspondam às condições na tabela de dados e, em seguida, usar ASP para executar o processamento relacionado.
Todos os caminhos levam a Roma! Claro, também podemos usar o procedimento armazenado do banco de dados SQL SERVER para implementar facilmente esta função. Embora seja relativamente complexo, sua melhoria de eficiência é óbvia, pois o procedimento armazenado é um programa que foi compilado no banco de dados, e só precisamos utilizar ASP para passar corretamente os diversos parâmetros por ele utilizados.
Este artigo também deseja apresentar principalmente como chamar um procedimento armazenado com parâmetros em ASP por meio de um exemplo simples. Espero que você possa obter mais inspiração com isso.
O primeiro passo é criar a tabela de dados userinfo
id int(4) não nulo,
nome completo varchar(50) não nulo,
senha varchar(20) não nula,
nikename varchar(50) not null
A segunda etapa é criar o procedimento armazenado usercheck
CRIAR procedimento usercheck
@infullname varchar(50),
@inpassword varchar(50),
@outcheck char(3) SAÍDA
como
se existir (selecione * em userinfo onde fullname=@infullname e password=@inpassword )
selecione @outcheck='sim'
outro
select @outcheck='no'
Nota: Um procedimento armazenado com três parâmetros é criado aqui. O primeiro parâmetro @infullname é um parâmetro de entrada (nome de usuário); o segundo parâmetro @inpassword também é um parâmetro de entrada (senha); parâmetro @outcheck, este é um parâmetro de saída, (se este usuário existe), ao definir o parâmetro de saída, a palavra "OUTPUT" deve ser adicionada após o tipo de dado.
Em seguida, pegamos os dois primeiros parâmetros de entrada para recuperar se há um usuário qualificado na instrução SQL. Se houver, o valor do parâmetro de saída é “sim”, caso contrário, é “não”.
A terceira etapa é escrever um programa ASP e chamar o procedimento armazenado
<%
'Sinalizador de envio de formulário
if request("ok")=1 then
'Estabelecer conexão com o banco de dados
Definir Comm=Server.CreateObject("ADODB.Command")
Comm.ActiveConnection="DSN=localserver;UID=sa;PWD=;Database=chaiwei"
'Estabelece uma conexão de procedimento armazenado com o objeto de comunicação, 4 significa que o tipo de conexão é um procedimento armazenado
Comm.CommandText = "usercheck"
Comm.CommandType=4
'Crie o método de parâmetro do objeto comm com p1 como nome. Anexe o primeiro parâmetro fullname à coleção p1 'fullname' O nome do primeiro parâmetro chamado '200 Tipo de parâmetro tipo varchar '1 Fluxo de parâmetro para a entrada, a entrada é 1, a saída é 2
'50 comprimento do parâmetro 50
'request("fullname") Atribuir valor inicial ao parâmetro
Set p1=Comm.CreateParameter("fullname",200,1,50,request("fullname"))
Comm.Parameters.Append p1
'Crie o método de parâmetro do objeto comm com p1 como nome. Anexe a senha do segundo parâmetro à coleção p1
'As especificações são as mesmas acima
Set p1=Comm.CreateParameter("password",200,1,20,request("password"))
Comm.Parameters.Append p1
'Crie o método de parâmetro do objeto comm com p1 como nome. Anexe a verificação do terceiro parâmetro à coleção p1
'129 Tipo de parâmetro tipo char
'2 Fluxo de parâmetro para saída
'3 Comprimento do parâmetro 3
Defina p1=Comm.CreateParameter("check",129,2,3)
Comm.Parameters.Append p1
'Executa o procedimento armazenado
Com.Executar
'Propor o resultado e processá-lo
if comm("verificar")="sim" então
response.write "Bem-vindo ao sistema! Nome de usuário:" & comm("nome completo") & "Senha:" & comm("senha")
outro
response.write "Desculpe, você ainda não se registrou!"
end if
'Liberar conexão
Definir Comm = nada
else
'faz parte
%>