Aprender a usar procedimentos armazenados é um dos cursos que os programadores ASP devem aprender. Todos os grandes bancos de dados suportam procedimentos armazenados. O artigo de hoje é uma coleção completa do uso de procedimentos armazenados da ASP compartilhados pelo editor do editor da nova tecnologia. Vamos ao artigo a seguir para saber mais!
1. Ligue para os procedimentos armazenados sem parâmetros
<%
Definir Conn = Server.CreateObject ("Adodb.Connection")
set cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.Open strconn
Definir CMD.ActiveConnection = Conn
cmd.CommandText = "{Call Nono}"
'Definir rs = cmc.exe ou cmd.execute
set rs = cmd.execute ()
%>
2. Um procedimento armazenado para parâmetros de entrada
<%
Definir Conn = Server.CreateObject ("Adodb.Connection")
set cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.Open strconn
Definir CMD.ActiveConnection = Conn
cmd.CommandText = "{Call OneInput (?)}"
cmd.parameters.append cmd.createParameter ("@aaa", adinteger, adparaminput)
cmd ("@aaa") = 100
cmd.execute ()
%>
3. Um parâmetro de entrada e um parâmetro de saída
<%
Definir Conn = Server.CreateObject ("Adodb.Connection")
set cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.Open strconn
Definir CMD.ActiveConnection = Conn
cmd.CommandText = "{Call OneInout (?,?)}"
cmd.parameters.append cmd.createParameter ("@aaa", adinteger, adparaminput)
cmd ("@aaa") = 10
cmd.parameters.append cmd.createParameter ("@bbb", adinteger, adparamoutput)
cmd.execute ()
bbb = cmd ("@bbb")
%>
4. Um parâmetro de entrada, um parâmetro de saída e um valor de retorno
<%
Definir Conn = Server.CreateObject ("Adodb.Connection")
set cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.Open strconn
Definir CMD.ActiveConnection = Conn
cmd.CommandText = "{? = Call OneEreTurn (?,?)}"
cmd.parameters.append cmd.createParameter ("@return_value", adinteger, adparamreturnValue)
cmd.parameters.append cmd.createParameter ("@aaa", adinteger, adparaminput)
cmd ("@aaa") = 10
cmd.parameters.append cmd.createParameter ("@bbb", adinteger, adparamoutput)
cmd.execute ()
bbb = cmd ("@bbb")
rrr = cmd ("@return_value")
%>
Como ligar para o procedimento armazenado SQL no ASP
www.lucky365.net 2002-2-7 jixiang365
<%Set Connection1 = Server.CreateObject ("Adodb.Connection")
Connection1.open ... 'Junte -se
Set Command1 = Server.CreateObject ("Adodb.Command")
set command1.activeConnection = conexão1
Command1.CommandType = 4
Command1.CommandText = "SP_1" 'Nome SP
Command1.parameters (1) = ... 'Valor dos parâmetros
command1.parameters (2) = ...
SET RECORDSET1 = Command1.execute ()
%>
Dicas para procedimentos armazenados de chamada ASP
1. O mais simples é o seguinte
Dim Objconn
Set objconn = server.createObject ("adobd.connection")
objconn.open Application ("Connection_String")
'Ligue para o procedimento armazenado para incrementar um contador na página
objconn.execute "Exec sp_addhit"
Sem parâmetros, sem retorno, sem tratamento de erros, é isso
2. Uma chamada com parâmetros
objconn.execute "Exec sp_addhit 'http://www.aspalliance.com', 1"
Observe que os parâmetros divididos não são devolvidos aos registros.
3. Retorne ao registro
Dim Objconn
Objrs dim
Set objconn = server.createObject ("adobd.connection")
Set objrs = server.createObject ("adobd.recordset")
objconn.open Application ("Connection_String")
'Ligue para o procedimento armazenado para incrementar um contador na página
objrs.open objconn, "Exec sp_listarticles '1/15/2001'"
'Faça um loop através do RecordSet e exiba cada artigo
4 ....
Dim Objconn
Dim objcmd
'Objetos instantados
Set objconn = server.createObject ("adodb.connection")
set objcmd = server.createObject ("adodb.command")
Conn.Open Application ("ConnectionString")
Com objcmd
.ActiveConnection = Conn 'Você também pode especificar uma string de conexão aqui
.CommandText = "sp_insertarticle"
.CommandType = adcmdStoredProc 'requer o arquivo Adovbs.inc ou a metatag typeLib
'Adicione parâmetros de entrada
.Parameters.append .createParameter ("@colunist_id", addouble, adparaminput, colunist_id)
.Parameters.Append .CreateParameter ("@url", Adverchar, Adparaminput, 255, URL)
.Parameters.append .createParameter ("@title", Adventar, Adparaminput, 99, URL)
.Parameters.append .createParameter ("@description", adlongvarchar, _
adparaminput, 2147483647, descrição)
'Adicione parâmetros de saída
.Parameters.append .createParameter ("@link_id", adinteger, adparamoutput ,, 0)
'Execute a função
'Se não estiver retornando um conjunto de registros, use a opção de parâmetro ADEXECONDENORECORDS
.Execute ,, AdexecutenOrecords
link_id = .parameters ("@link_id")
Termine com
5. Código de procedimento armazenado
Crie procedimento dbo.sp_inserTarticle
(
@columnist_id int,
@url varchar (255),
@title varchar (99),
@Description Text
@link_id int output
)
COMO
COMEÇAR
Inserir em dbo.t_link (colunista_id, url, título, descrição)
Valores (@colunist_id,@url,@title,@description)
Selecione @link_id = @@ identidade
FIM
Várias maneiras de chamar procedimentos armazenados com parâmetros
Recentemente, muitos amigos fizeram perguntas sobre chamadas de procedimentos armazenados. Aqui estão uma breve introdução a vários métodos de chamadas de ASP, 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
Connection.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
Retornar @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", avançar, 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, os campos nele 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 & "
"& Vbcrlf
Próximo
Resposta.write "
"
ADORS.Movenext
Wend
'' Imprima dois valores de saída:
Resposta.write "
@intidout = "& cmdsp.parameters ("@intidout "). Valor &"
"
Resposta.write "
Valor de retorno = "& cmdsp.parameters (" return_value "). Valor &"
"
'' 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.
Usando procedimentos armazenados no ASP
Para melhorar a eficiência dos programas ASP, às vezes é necessário usar a tecnologia de armazenamento usando o SQL Server no ASP. Aqui está uma breve introdução.
Estabelecimento de procedimentos armazenados
Aqui está uma breve introdução de como estabelecer procedimentos armazenados no gerente corporativo do SQL Server:
(1) Open Manager Enterprise
(2) Selecione o grupo de servidores (grupo de servidor SQL), servidor, banco de dados (banco de dados) e o banco de dados correspondente, clique com o botão direito do mouse no item de ProcDures armazenado no banco de dados correspondente, selecione novos procedimentos armazenados no menu pop-up e insira a instrução para criar um procedimento armazenado em propriedades de procedimentos armazenados. Aqui está um exemplo:
Criar procedimento proctest @mycola char (10),@mycolb char (10),@mycolc text como
Inserir nos valores de chatdata (mycola, mycolb, mycolc) (@mycola,@mycolb,@mycolc)
Na documentação do SQL Server, sua sintaxe é:
Crie Proc [edure] procedure_name [; número] [
{@parameter data_type} [variando] [= padrão] [output]]
[, ... n] [com {recompile | Criptografia
| Recompile, criptografia}] [para replicação] como
sql_statement [... n]
Se você não estiver familiarizado com a sintaxe do SQL, poderá usar a sintaxe da verificação para verificar a sintaxe. No exemplo acima, significa que o procedimento armazenado é criado com um procedimento armazenado chamado Mycola e 3 parâmetros. O primeiro parâmetro Mycola Data Type é char e largura 10; O segundo tipo de dados do parâmetro é char e largura 10, e o terceiro tipo de dados de dados é o texto. Aqui está o tipo de dados do servidor SQL.
Depois que o procedimento armazenado for estabelecido, o seguinte é como chamar o procedimento armazenado no programa ASP: para melhorar a eficiência do programa ASP, às vezes é necessário usar a tecnologia de armazenamento usando o SQL Server no ASP. Aqui está uma maneira simples de adicionar parâmetros na declaração acima p.append cm.createParameter ("@mycolc", 201, 1, 250), o formato é:
p.append cm.createParameter ("nome do parâmetro", tipo, direção, tamanho)
O significado do tipo do valor do parâmetro é o seguinte:
Nome Valor Função de Valor Inteiro
AddBTimestamp 135 Tipo de dados de data e hora
ADDECIMAL 14 Valor inteiro decimal
ADDOUBLE 5 Valor decimal de dupla precisão
Mensagem de erro do sistema Aderror 10
Adguid 72 Identificador globalmente único
Addispath 9 Com/Ole Objeto Automático (objeto de automação)
Adinteger 3 Inteiro assinado de 4 bytes
Adiunknown 13 Com/Ole Objeto
adlongvarbinary 205 grande valor de 2 bytes
Adlongvarchar 201 Valor de cordas grandes
adlongvarwchar 203 Grande corda não codificada
valor inteiro decimal adnumérico 131
adsingle 4 ponto flutuante de precisão única decimal
Adsmallint 2 2 bytes assinados
AdtinyInt 16 1 byte assinado inteiro
AdunSignedBigint 21 Inteiro não assinado de 8 bytes
adunSignedint 19 4 bytes não assinados inteiros
adunSignedsmallint 18 2 bytes não assinados inteiros
adunSignedTinyint 17 1 byte não assinado inteiro
ADUSERDEFINADO 132 Tipo de dados definido pelo usuário
Constante 12 OLE Objeto
Valor variável de caracteres de byte duplo 204
Valor variável de caráter de 200 caráter
Valor variável de string não codificada
Adwchar 130 String não codificada
O significado dos valores de direção é o seguinte:
Nome Valor Função de Valor Inteiro
adparaminput 1 Permitir que os dados sejam inseridos neste parâmetro
AdparamOutput 2 permite que os dados sejam emitidos para este parâmetro
adparaminputOutput 3 permite a entrada e saída de dados para este parâmetro
AdparamReturnValue 4 permite que os dados sejam retornados de uma sub -rotina para este parâmetro
O exposto acima é uma coleção completa do uso de procedimentos armazenados ASP coletados pelo editor do novo canal de tecnologia errada. Espero que seja de alguma ajuda para o seu aprendizado!