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

Urgente

Estas en el tema de Urgente en el foro de ASP Clásico en Foros del Web. Hola, Tengo el siguiente problema con una página asp. Necesito pasarle a una función una sentencia SQL de manera que si esa sentencia provoca un ...
  #1 (permalink)  
Antiguo 13/05/2004, 05:23
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Urgente

Hola,

Tengo el siguiente problema con una página asp.
Necesito pasarle a una función una sentencia SQL de manera que si esa sentencia provoca un error, me redirija a otra página, y si no provoca error y es válida, me devuelva la ejecución de dicha sentencia.

El problema viene cuando recojo el valor que me devuelve la función en un recordset, el cual parece perder sus propiedades y no puedo tratarlo como tal.

Necesito ayuda urgente.

Muchas gracias.
  #2 (permalink)  
Antiguo 13/05/2004, 10:53
Avatar de Avelar  
Fecha de Ingreso: noviembre-2002
Ubicación: Ensenada, Baja California, México
Mensajes: 673
Antigüedad: 21 años, 7 meses
Puntos: 1
¿No te marca algún error? ¿A qué te refieres con eso de que el recordset pierde sus propiedades?
__________________
Ariel Avelar
  #3 (permalink)  
Antiguo 13/05/2004, 19:41
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola,

Me refiero a que no puedo hacer alusión a la propiedad del recordset:

por ejemplo .eof, .bof, .movenext, etcétera.
Es como si solo me devolviera un registro de todo el recordset desde la función. Cuando tenga tiempo intentaré poner la función para que la veas.

Un saludo, gracias
  #4 (permalink)  
Antiguo 14/05/2004, 06:48
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Como dije, este es el código en cuestión:

<!--#include file="conexion_a_bbdd.asp"-->
<%
function ejecutar(ByRef query)
On error Resume next
ejecutar = conex.execute(query)
if err <> 0 then
err = 0
response.Redirect("url")
end if
end function

Sql = "Select * from pepes"
Set lolos = ejecutar(Sql)
if not lolos.eof and not lolos.bof then '<<-------- aquí peta
response.Write(pepes("nombre"))
end if
%>

Espero que tenga solución y alguien pueda dármela.
Muchas gracias
  #5 (permalink)  
Antiguo 14/05/2004, 06:56
Avatar de Cbas  
Fecha de Ingreso: enero-2002
Ubicación: capital federal
Mensajes: 437
Antigüedad: 22 años, 5 meses
Puntos: 2
POrque no probás en vez de poner err <> 0... poné.. err.number<>0

Fijate a ver si así funciona
__________________
La Perfección es enemigo de lo bueno.
  #6 (permalink)  
Antiguo 20/05/2004, 09:39
 
Fecha de Ingreso: diciembre-2003
Mensajes: 4
Antigüedad: 20 años, 6 meses
Puntos: 0
Ese no es el problema

Hola,

Me temo que el problema no está en capturar si ha habido un error o no.

El problema está en que la función no me devuelve todo el recordset.
Se debe hacer un lio, porque me devuelve todo un registro, pero sólo uno.

Esto se me escapa de las manos. Ya lo he probado todo y le he dado mil vueltas al asunto.

Y el problema es que no lo puedo hacer de otra forma, porque entonces tendría que tirar el sitio entero abajo y volverlo a construir.

Cualquier ayuda es buena.

Muchas Gracias


------------------------------------------------------------------------------
¿Cuando alcanzará el hombre la perfección?
  #7 (permalink)  
Antiguo 20/05/2004, 11:19
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Si estas usando una base de datos que admita procedimientos almacenados, todo se arregla con un parámetro de salida:

SET @Bandera=''
SELECT @Password=Password
FROM Cat.dbo.Proveedores
WHERE Id_Prov=@Id_Prov

IF @@ROWCOUNT=0
BEGIN
SET @Bandera='*'
END

Y preguntas por este parámetro, si es * ni preguntes por el recordset.

saludos
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 00:46.