Ver Mensaje Individual
  #19 (permalink)  
Antiguo 04/07/2007, 09:15
Avatar de Myakire
Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: Como llamo a un procedimiento almacenado

A un SP se le pueden pasar parámetros de diferentes formas, de la más simple como esta:
Código:
vSQL = "sTotalCortePT_PrecioNormal '" & Request.Form("hidNomCliente") &"', '" & Request("FechaInicial") & "', '"& Request("FechaFinal") &"'," & Request.Form("NomCliente")
rs.Open vSQL,con
Hasta usando objetos commands:

Código:
   Set adoConn = Server.CreateObject("adodb.connection")
   set cmd=server.CreateObject("ADODB.command")
   Set cmd.ActiveConnection = Con
   cmd.CommandText = "Cobranza_iRegistraPago"
 	 cmd.CommandType=adCmdStoredProc
   cmd.Parameters.Append (cmd.CreateParameter("@Fecha",       adDate,    adParamInput, 8, CDate(Request("FechaPago"))))
   cmd.Parameters.Append (cmd.CreateParameter("@IdCtaBanco",  adVarchar, adParamInput, 10, Request.Form("Banco")))
   cmd.Parameters.Append (cmd.CreateParameter("@MontoPago",   adVarChar, adParamInput, 10, Request.Form("MontoPago")))
   cmd.Parameters.Append (cmd.CreateParameter("@Referencia",  adVarchar, adParamInput, 100, Request.Form("Referencia")))
   cmd.Parameters.Append (cmd.CreateParameter("@IdUsuario",   adVarchar, adParamInput, 3, Session("Usuario")))
   cmd.Parameters.Append (cmd.CreateParameter("@IdCtaCliente",adVarchar, adParamInput, 10, Request.Form("hidIdCliente")))
   cmd.Parameters.Append (cmd.CreateParameter("@IdPago",      adVarchar, adParamOutput,4))
	 cmd.Prepared = True
	 cmd.Execute

   vIdPago = cmd.Parameters("@IdPago")

Ahora, solo dos cosas. Una es que disculpes si en ocasiones no se te da la respuesta concreta a tu pregunta ya masticada y digerida, pero por ejemplo en mi caso, son preguntas que ya se han hecho tantas veces y ya hay tantas respuestas en el foro que uno ya no se esfuerza a contestar dado que quien pregunta muchas veces no se esfuerza en buscar la pregunta, mínimo en las respuestas anteriores, ya no digamos en las FAQ's (que por cierto ahí están ejemplos de llamado a SP, cosa de buscar) o en las colecciones de librerias, ambas marcadas como temas importantes. Y la segunda es que recuerdes que nadie aquí tiene la obligación de contestar nada, depende de nuestro estado de ánimo, tiempo y disposición.

Ahora, pasado el breve altercado, pasemos a la explicación de los dos códigos anteriores. El primero verás que es algo tan simple como abrir un recordset mandando una cadena con la intrucción SQL en cuestión, deducirás que lo mismo puedes colocar la llamada al SP que una serie de sentencias TSQL encadenadas.
En el segundo tienes un poco más de control, ya que indicas el nombre (en el ejemplo primero también se puede se así lo deseas), el tipo, la longitud y el valor del parámetro, y puedes definir el sentido del mismo, es decir, si es de entrada o de salida. Solo recuerda que debes definir las constantes usadas, pero no es problema, solo descarga de la web el archivo llamado adovbs.inc

Saludos