Foros del Web » Programando para Internet » ASP Clásico »

Ayuda procedimientos almacenados

Estas en el tema de Ayuda procedimientos almacenados en el foro de ASP Clásico en Foros del Web. Estoy sustituyendo todas las consultas de mi página web por procedimientos almacenados para ganar velocidad, y no he tenido ningún problema hasta q ha llegado ...
  #1 (permalink)  
Antiguo 17/06/2002, 06:13
 
Fecha de Ingreso: mayo-2002
Mensajes: 82
Antigüedad: 23 años
Puntos: 0
Ayuda procedimientos almacenados

Estoy sustituyendo todas las consultas de mi página web por procedimientos almacenados para ganar velocidad, y no he tenido ningún problema hasta q ha llegado el momento de tener q pasar parámetros, ahí va el código:

//Procedimiento almacenado

CREATE PROCEDURE dbo.proc_alma1 AS
declare @parametro1 int

Select * From Tabla1 Where fam_id= @parametro1

Return


//ASP
dim cmd,params
Set cmd=Server.CreateObject("ADODB.Command")

With cmd
Set cmd.ActiveConnection =conn
.CommandText = "proc_alma1"
.CommandType = 4
Set params = cmd.Parameters
end With
params.Append cmd.CreateParameter("@parametro1",adInte ger,adParamInput)

params("@art_idfam") = variable_asp

cmd.Execute,,adExecuteNoRecords
Set cmd=nothing


El error q me da es el siguiente:

Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros.

y me lo marca en esta línea:
params.Append cmd.CreateParameter("@art_idfam",adInteg er,adParamInput)


tb lo intenté de esta manera:
SET rs= Conn.Execute("proc_alma1" & art_idfam)
pero así me daba error pq me cogía el parámetrocomo parte del nombre, quiero decir, si el parámetro tenía valor 200, buscaba el procedimiento almacenado: proc_alma1200.

Lo intenté de esta forma pq como no me funcionaba de la otra y he estado buscando por el foro, y las soluciones eran o bien la anterior o esta, pero no me sirve. Así q a ver si alguien me puede decir algo. Muchas gracias.
  #2 (permalink)  
Antiguo 17/06/2002, 13:53
 
Fecha de Ingreso: enero-2002
Mensajes: 5
Antigüedad: 23 años, 4 meses
Puntos: 0
Re: Ayuda procedimientos almacenados

SET rs= Conn.Execute("proc_alma1" & art_idfam)

despues de proc_alma1 coloca un espacio en blanco
quedaria asi:
SET rs= Conn.Execute("proc_alma1 " & art_idfam)
asi ya no te tomaria el parametro como parte del nombre, es lo que se me ocurre

uacko
  #3 (permalink)  
Antiguo 17/06/2002, 13:56
 
Fecha de Ingreso: mayo-2002
Mensajes: 82
Antigüedad: 23 años
Puntos: 0
Re: Ayuda procedimientos almacenados

Gracias, probaré a ver q ocurre, ya les comentaré, de todas formas si hay otra manera de hacerlo a estas dos agraqdecería q me lo dijérais.
  #4 (permalink)  
Antiguo 17/06/2002, 15:16
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
Re: Ayuda procedimientos almacenados

Cita:
params.Append cmd.CreateParameter("@parametro1",adInte ger,adParamInput)

params("@art_idfam") = variable_asp
estas llamando a una variable en el .Append

"@parametro1"

y le estas asignando una llamda

"@art_idfam"

....estas dos tienen que llamarse igual

Código:
  
params.Append cmd.CreateParameter("@parametro1",adInteger,adParamInput)
params("@parametro1") = variable_asp
  #5 (permalink)  
Antiguo 18/06/2002, 03:09
 
Fecha de Ingreso: mayo-2002
Mensajes: 82
Antigüedad: 23 años
Puntos: 0
Re: Ayuda procedimientos almacenados

Tienes razón, eso está mal, pero en el código lo tengo bien, es q para mandar el mensaje cambié el nombre de las variables para q se viese más claro, por eso le llamé parametro1, pero en la siguiente línea se pasó. Así q por eso no es por eso. por favor, más ideas, lo necesito y no sé pq me está fallando. No veo lo q estoy haciendo mal. Muchas gracias.
  #6 (permalink)  
Antiguo 18/06/2002, 07:41
 
Fecha de Ingreso: mayo-2002
Mensajes: 82
Antigüedad: 23 años
Puntos: 0
Re: Ayuda procedimientos almacenados


He probado así tb:


dim cmd,params
Set cmd=Server.CreateObject("ADODB.Command")

With cmd
Set cmd.ActiveConnection =conn
.CommandText = "novedad1" .CommandType = 4
'Set params = cmd.Parameters
.parameters(0).value= art_idfam
end With


Set rs_fam= cmd.Execute

%>

<%


padre=rs_fam("fam_desc")


Pero al igaular a padre me dice q o hay registros.
  #7 (permalink)  
Antiguo 18/06/2002, 11:14
 
Fecha de Ingreso: mayo-2002
Mensajes: 4
Antigüedad: 23 años
Puntos: 0
Re: Ayuda procedimientos almacenados

Prueba con esto:

Dim strSql
Dim rs

strSql = "Exec nombre_proced_almacenado comilla_simple" & nombre_parametro & "comilla_simple"

cmd.CommandText = strSql
Set rs = cmd.Execute
  #8 (permalink)  
Antiguo 18/06/2002, 11:33
 
Fecha de Ingreso: mayo-2002
Mensajes: 82
Antigüedad: 23 años
Puntos: 0
Re: Ayuda procedimientos almacenados

Ok, gracias, probaré ya te diré lo q pasa, pero una cosa, mi variable contiene un entero, si le pongo comillas no lo cogerá como literal? igual me da error pq no coinciden los tipos. Bueno, lo pruebo y comento.

Ciao.
  #9 (permalink)  
Antiguo 29/04/2003, 05:47
 
Fecha de Ingreso: enero-2002
Mensajes: 115
Antigüedad: 23 años, 4 meses
Puntos: 1
y si quieres usar dos parametros como lo pones?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:19.