Recomendado: Implementação da entrada de dados em lote ASP A entrada em lote é amplamente usada em bancos de dados e existem muitos métodos para entrada em lote. Em seguida, falarei sobre como consegui isso com base no meu aplicativo real. O uso principal é o conceito de coleção de formulários, que leva todos os dados da coleção através do loop. Considerando que é conveniente para que todos vejam, eu o integrasse em uma página. Abaixo está o código específico
Várias maneiras de chamar procedimentos armazenados com parâmetros
1 Este também é o método mais fácil, com dois parâmetros de entrada, sem valor de retorno:
Definir conexão = server.createObject (adodb.connection)
Connection.open Somentesn
Conexão.Execute procname varValue1, varValue2
'Limpe todos os objetos em nada, liberte recursos
Connection.Close
Definir conexão = nada
2 Se você quiser devolver o conjunto de registros:
Definir conexão = server.createObject (adodb.connection)
Connection.open Somentesn
set rs = server.createObject (adodb.recordset)
Rs.Open Exec procname varValue1, varValue2, conexão
'Limpe todos os objetos em nada, liberte recursos
rs.close
Connection.Close
Definir rs = nada
Definir conexão = nada
3 Os dois métodos acima não podem ter um valor de retorno (exceto o registro). Se você deseja obter o valor de retorno, precisará usar o método de comando.
Primeiro de tudo, existem dois tipos de valores de retorno. Um é retornar diretamente um valor no procedimento armazenado, assim como as funções dos valores de retorno C e VB; o outro é retornar vários valores,
Os nomes da variável que armazenam esses valores precisam ser especificados primeiro no parâmetro de chamada.
Este exemplo lidará com vários parâmetros, parâmetros de entrada, parâmetros de saída, registros de retorno e um valor de retorno direto (é tudo o suficiente?)
O procedimento armazenado é o seguinte:
Use bares
IR
- Crie procedimentos armazenados
Crie procedimento sp_pubstest
- Defina três variáveis de parâmetros, observe o terceiro, a marca especial é usada para saída
@au_lname varchar (20),
@intid int,
@Intidout int Output
COMO
Selecione @intidout = @intid 1
Selecione *
De autores
Onde Au_lname como @au_lname '%'
--retorno um valor diretamente
Retorne @intid 2
O programa ASP que chama o procedimento armazenado é o seguinte:
< %@ Idioma = vbscript %>
<%
Dim CMDSP
Adores fracos
Dim ADCMDSPStoredProc
AdparamReTurvalValue escuro
Adparaminput dim
AdparamOutput
Dim Adinteger
Dimival
Dim oval
Dim ADOfield
Dim
'Esses valores são constantes predefinidos em VB e podem ser chamados diretamente, mas não predefinidos no VBScript
ADCMDSPStoredProc = 4
adparamreturnValue = 4
adparaminput = 1
adparamOutput = 2
adinteger = 3
ADV = 200
IVAL = 5
oval = 3
'Crie um objeto de comando
Definir cmdsp = server.createObject (adodb.command)
'Crie um link
Cmdsp.activeConnection = driver = {sql server}; server = (local); uid = sa; pwd =; database = pubs
'Defina o nome da chamada do objeto de comando
Cmdsp.CommandText = sp_pubstest
'Definir tipo de chamada de comando como um procedimento armazenado (adcmdsptoredproc = 4)
Cmdsp.CommandType = ADCMDSPStoredProc
'Adicione parâmetros ao objeto de comando
'Definir o procedimento armazenado tem um valor de retorno direto e é um número inteiro, o valor padrão é 4
Cmdsp.parameters.append cmdsp.createParameter (return_value, adinteger, adparamreturnvalue, 4)
'Defina um parâmetro de entrada de personagem
Cmdsp.parameters.append cmdsp.createParameter (@au_lname, Adverchar, adparaminput, 20, m)
'Defina um parâmetro de entrada inteira
Cmdsp.parameters.append cmdsp.createParameter (@intid, adinteger, adparaminput, ival)
'Defina um parâmetro de saída inteira
Cmdsp.parameters.append cmdsp.createParameter (@intidout, adinteger, adparamoutput, oval)
'Execute o procedimento armazenado e obtenha o conjunto de registros de retorno
SET ADORS = CMDSP.EXECUTE
'Imprima cada registro, cujos campos são virtuais, você pode ignorá -lo
Embora não seja ADORS.EOF
Para cada Adofield em Adors.fields
Response.Write Adofield.Name & = & Adofield.value & <br> & vbcrlf
Próximo
Response.write <br>
ADORS.Movenext
Wend
'Imprima dois valores de saída:
Response.write <p> @intidout = & cmdsp.parameters (@intidout) .Value & </p>
Response.write <p> Valor de retorno = & cmdsp.parameters (return_value) .Value & </p>
'Grande limpeza
Definir Adores = nada
Defina CMDSP.ActiveConnection = nada
Definir CMDSP = nada
%>
Existem outras maneiras, que estão um pouco fora, e eu vou falar sobre isso mais tarde
Este artigo referenciou muitos artigos e não será listado aqui.
Compartilhar: vários envios repetidos de formulários restritos no ASP Na Internet, encontramos inúmeros formulários todos os dias e também vemos que a maioria deles não restringe os usuários de enviar o mesmo formulário várias vezes. A falta de tais restrições às vezes pode produzir alguns resultados inesperados, como assinatura duplicada em serviços de email ou votação duplicada. Este artigo apresenta um método simples em aplicativos ASP para impedir que os usuários enviem o mesmo formulário várias vezes durante a sessão atual