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

Error Asp y store procedure

Estas en el tema de Error Asp y store procedure en el foro de ASP Clásico en Foros del Web. Hola tengo un aplicacion en la cual me da el siguiente error Microsoft OLE DB Provider for SQL Server error '80040e10' Procedure 'BuscaMedida' expects parameter ...
  #1 (permalink)  
Antiguo 23/06/2005, 13:13
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 4 meses
Puntos: 1
Error Asp y store procedure

Hola tengo un aplicacion en la cual me da el siguiente error

Microsoft OLE DB Provider for SQL Server error '80040e10'

Procedure 'BuscaMedida' expects parameter '@OrderBy', which was not supplied.

El procedimiento almacenado se llama BuscaMedida, en el intento ordenar por campos,

es mas o menos asi
CREATE PROCEDURE BuscaMedida
@OrderBy tinyint

AS
declare @sql as varchar(8000)
set @sql='SELECT [encu_id],[encu_titu] as Titulo, [encu_cpre] as [Numero de respuestas], [encu_stat] as Estado, convert(varchar(10), [encu_fini], 110) as [Date] FROM [encuestas]'

if @OrderBy =1
set @sql= @sql + ' order by [Titulo] asc '
if @OrderBy =2
set @sql= @sql + ' order by [Numero de respuestas] asc '
if @OrderBy =3
set @sql= @sql + ' order by [Estado] asc '
if @OrderBy =4
set @sql= @sql + ' order by [Date] asc '



execute(@sql)
GO


Yo se que es procedimiento esta bien, pero cuando ejecuto la aplicacion me da ese error
no se como resolver ese problema gracias de antemano por la ayuda
  #2 (permalink)  
Antiguo 23/06/2005, 13:15
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
No le estas pasando el parametro orderby al stored procedure, pon el codigo que invoca el mismo.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 23/06/2005, 13:19
Avatar de 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
O si se lo estas pasando, pero es de Input y no le envias un valor (si usas el objeto command)
  #4 (permalink)  
Antiguo 23/06/2005, 13:27
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 4 meses
Puntos: 1
Hola uhmmm perdon mi santa ingnorancia pero yo crei que se lo pasaba asi

Dim strSql


strSql = 'Exec BuscaMedida'

No entiendo como hacerlo

gracias por responder
  #5 (permalink)  
Antiguo 23/06/2005, 13:33
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 3 meses
Puntos: 98
Hola, perdona que no tengo mucho tiempo para contestar tu pregunta, pero como dijo Myak, querras investigar sobre el objeto command, aqui te dejo esta funcion que lo utiliza y envia parametros de entrada y salida, analizalo y obten tus conclusiones.

Código:
	Public Function MakeRecur(intCalendarID, intRecurID, dtDate)
		Dim conn
		Dim param
		Set conn = Server.CreateObject("ADODB.Connection")
		Set cmd = Server.CreateObject("ADODB.Command")
		conn.Open strConnect
		cmd.ActiveConnection = conn
		cmd.CommandText = "sp_makerecurrent"
		cmd.CommandType = adCmdStoredProc
		dtDate = CDate(Month(dtDate) & "/" & Day(dtDate) & "/" & Year(dtDate))
		Set param = cmd.CreateParameter("calendar_id", adInteger, adParamInput, 4, intCalendarID)
		cmd.Parameters.Append(param)
		Set param = cmd.CreateParameter("recurrent_id", adInteger, adParamInput, 4, intRecurID)
		cmd.Parameters.Append(param)
		Set param = cmd.CreateParameter("calendar_start_date", adDate, adParamInput, 8, dtDate)
		cmd.Parameters.Append(param)
		Set param = cmd.CreateParameter("calendar_type_id", adInteger, adParamInput, 4, Calendar_type_id)
		cmd.Parameters.Append(param)
		Set param = cmd.CreateParameter("new_id", adInteger, adParamOutput, 4)
		cmd.Parameters.Append(param)
		cmd.Execute 
		MakeRecur = cmd.Parameters("new_id")
		Set param = Nothing
		Set cmd = Nothing
		Set conn = Nothing
	End Function
Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 23/06/2005, 13:34
 
Fecha de Ingreso: abril-2005
Mensajes: 92
Antigüedad: 20 años
Puntos: 0
intenta esto...
numero_orderby = 2
strSql = 'Exec BuscaMedida ' & numero_ordeby

asi deberia estar listo... antes orderby no tenia ningun valor por eso el error...
saludos
__________________
Er_Duque
  #7 (permalink)  
Antiguo 23/06/2005, 14:16
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 20 años
Puntos: 2
Hola!

Bueno, asi rapido, no necesitas el exec, necesitas solamente:

numero_orderby = 2
strSql = 'BuscaMedida ' & numero_ordeby

set objRs = oConn.Execute (strSql)

etc.....

Pero dinos que error te marca, porque por ahi puede ser simplemente que no le has agregado permisos al procedure, revisa que el usuario que usas en tu conexion a la base de datos en el ASP, tenga permisos de ejecucion sobre ese procedure.

Y sobre el objeto command, lo usas cuando tienes parametros en el procedure como OutPut, pero aqui parece que no tienes, entonces no lo necesitas, todo le llegara en el objRs

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #8 (permalink)  
Antiguo 23/06/2005, 15:08
Avatar de Sayra  
Fecha de Ingreso: diciembre-2004
Mensajes: 365
Antigüedad: 20 años, 4 meses
Puntos: 1
Chicos esta listo,gracias

Hola, muchas gracias a todos por su ayuda y asistencia,son geniales tome un poco de cada recomendacion y resolvi el problema.

Muchas gracias por todo y a todos

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 05:42.