Desenvolvimento - ASP
Chamando Stored Procedures do ASP
Demonstraremos neste artigo como realizar a chamada de uma stored procedure do Oracle a partir do ASP.
por Equipe Linha de CódigoStore Procedures
Stored procedures são programas SQL escritos por um programador e que são armazenados no servidor de banco de dados e podem ser invocados por aplicações clientes.
As principais motivações para a construção de stored procedures são: modularização de funcionalidades que mais de uma aplicação cliente necessitaria facilitando o reaproveitamento de código, separação de regra de negócio da aplicação cliente, concentração de lógica de manipulação de dados no banco de dados.
Atualmente, com o crescimento dos servidores de aplicações a tendência é que a programação de regra de negócio seja retirada de stored procedures e colocadas em componentes de negócio nesses servidores. Em stored procedures ficariam apenas programas que específicos para manipulação de dados como migrações entre bases.
Uma stored procedure pode ser escrita em diferentes linguagens, tais como COBOL, C, C++, PL/SQL, FORTRAN, Assembly e Java, dependendo apenas do suporte a linguagens que o servidor de banco de dados oferece.
Oracle
Vamos apresentar duas situações: uma procedure comum e uma function.
Na function o resultado é enviado para o chamador como um retorno da função.
create or replace function soma_fcn( p1 number, p2 number ) return number
IS
v_valor number := null;
begin
v_valor := p1 + p2;
return v_valor;
end soma_fcn;
Na procedure o retorno é enviado de volta através de um dos
parâmetros de entrada da procedure.
create or replace procedure soma_prc( p1 in number, p2 in number, ret out number )
IS
v_valor number := null;
begin
v_valor := p1 + p2;
ret := v_valor ;
end soma_prc;
O código em ASP para chamar a procedure seria:
set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = v_conexao
objCommand.CommandText = "soma_prc"
objCommand.CommandType = adCmdStoredProc
"*** Carregando parâmetros de entrada
Set objParam = objCommand.CreateParameter("p1", adNumeric, adParamInput, 15, Request("valor1"))
objCommand.Parameters.Append objParam
Set objParam = objCommand.CreateParameter("p1", adNumeric, adParamInput, 15, Request("valor2"))
objCommand.Parameters.Append objParam
"*** Configurando variável que receberá o retorno
Set objParam = objCommand.CreateParameter("nRet", adNumeric, adParamOutput)
objCommand.Parameters.Append objParam
"*** Executando a stored procedure
objCommand.Execute
Response.Write "O resultado da stored procedure é " & objCommand("nRet")
O código em ASP para chamar a function seria:
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = v_conexao
objCommand.CommandText = "soma_fcn"
objCommand.CommandType = adCmdStoredProc
Set objParam = objCommand.CreateParameter("pRet", adNumeric, adParamReturnValue)
objCommand.Parameters.Append objParam
Set objParam = objCommand.CreateParameter("p1", adNumeric, adParamInput, , Request("valor1"))
objCommand.Parameters.Append objParam
Set objParam = objCommand.CreateParameter("p2", adNumeric, adParamInput, , Request("valor2"))
objCommand.Parameters.Append objParam
objCommand("pRet") = null
objCommand.Execute
Response.Write "O resultado da function é " & objCommand("pRet")
Este exemplo ilustrou a chamada de uma procedure Oracle a partir do
ASP, mas também é válida para SQL Server.






