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

On Error Resume Next y Getrows

Estas en el tema de On Error Resume Next y Getrows en el foro de ASP Clásico en Foros del Web. Hola, el problema es el siguiente Muestros el resultado de una consulta usando Getrows. Si se produce un error en la consulta no llama al ...
  #1 (permalink)  
Antiguo 12/01/2008, 06:59
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
On Error Resume Next y Getrows

Hola, el problema es el siguiente
Muestros el resultado de una consulta usando Getrows. Si se produce un error en la consulta no llama al Sub.
Esto es debido a sacar los registros con Getrows ¿Hay alguna forma de hacer que llame al Sub y seguir usando Getrows?

Código PHP:
On Error Resume Next 

SQL 
"Select campo FROM tabla WHERE campo =  variable;"
rs.Open SQLoConn,3,1

' ===== SE HA PRODUCIDO UN ERROR =====
if Err.number <> 0 Then 
Response.Clear
Call AvisoError
Err.Clear
end if
====================================

registros=rs.getrows 
Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #2 (permalink)  
Antiguo 12/01/2008, 10:20
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: On Error Resume Next y Getrows

Hola Adler, la verdad no entendí ¿Puedes explicarte un poco mejor? Si se produce error en la consulta, quiere decir que no tendrás ningún recordset del cuál obtener sus filas con getrows.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 13/01/2008, 06:52
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: On Error Resume Next y Getrows

Gracias por contestar, u_goldman.

Veamos si provoco u ocurre un error en la consulta, ha de
llamarse al Sub, pues bien, eso no ocurre. En su lugar la página aparece vacía.

En resumen lo quiero es que cuando ocurra un error en la consulta, llame al Sub. Y eso es exactamente lo que no
sucede. Creo que es por usar Getrows, puesto que si no lo uso; si que se llama al Sub en caso de error.

¿Hay alguna forma, usando claro está Getrows, se si se produce un error no muestra la página en blanco?

Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #4 (permalink)  
Antiguo 13/01/2008, 23:18
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Re: On Error Resume Next y Getrows

Hola Adler, está muy raro tu problema, pues se supone que eso exactamente es lo que hace tu programa ¿Puedes poner el código de tu subrutina?

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 14/01/2008, 05:51
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: On Error Resume Next y Getrows

Te imprimo todo lo importante para que lo revises. A ver si logras localiza el problema

Código:
<% On Error Resume Next  %>

<%
SELECT case idbusqueda 
case 1
Call MostrarReg
case 2
......
End SELECT

'=========================================================
Sub MostrarReg

Call ConectarForo
Call Registro (rs)

rs.PageSize = imprm
rs.CacheSize = imprm

SQL = "Select IdMensaje, IdForo, IdCabecera, IdPadre, Autor, AutorRes, Lecturas, ResEsteMensaje, Fecha, FechaResp, Tema, Cuerpo FROM Mensajes WHERE "
For i=0 to (UBound(array_cadena))
if i <> 0 then 
SQL = SQL & "OR "
end if
SQL = SQL & "LCase(Cuerpo) LIKE '%"&Espacio & array_cadena(i) & Espacio&"%'  "
Next 'i
SQL = SQL & "ORDER BY Fecha desc;"
rs.Open SQL, oConn,3,1

' ===== SE HA PRODUCIDO UN ERROR =====
if Err.number <> 0 Then ' Error conexión u otro tipo
Response.Clear
Call AvisoError
Err.Clear
end if
' ====================================

IF rs.EOF then ' No se han encontrado registros
%>
No se ha obtenido ning&uacute;n resultado. Prueba a intentarlo con otros t&eacute;rminos
<%
ELSE ' Se han encontrado registros
cant_registros = rs.RecordCount
cant_paginas = rs.PageCount
If pagina > cant_paginas then pagina = cant_paginas
If pagina< 1 Then pagina = 1

' ==== Imprime Paginación ========
if cant_paginas > 1 then
Call Paginacion
else
Call PocosReg
end if
' ==== Fin Imprime Paginación ========

rs.AbsolutePage = pagina

' ====== Saca Id's de registros encontrados 
Dim registros
registros=rs.getrows
' ====== Fin Saca Id's de registros encontrados 

Call LimpiarRS (rs)
Call LimpiarConexion

For z=0 to UBound(registros,2)
If registros_mostrados > (imprm-1) then
Exit For
Else
' ==== Imprime Registros ========
%>

<table border="0px" bgcolor="#e0b471" cellpadding="0px" cellspacing="1px" width="741px">
<tr>
<td>
<table border="0px" cellpadding="3px" cellspacing="0px" width="741px">
<tr>
<td class="panel_buscador_contenido" width="212px">Publicado: <%=registros(Fecha,z)%></td>
<td class="panel_buscador_contenido" width="222px"><div align="center">Autor: <strong><%=registros(Autor,z)%></strong></div></td>
</tr>
<tr>
<td class="panel_buscador_contenido" colspan="2">Tema: <a href="./foros/mostrarmsg.asp?id=<%=registros(IdCabecera,z)%>&amp;f=<%=registros(IdForo,z)%>"><strong><%=registros(Tema,z)%></strong></a></td>
</tr>
<tr>
<td class="panel_buscador_contenido" colspan="2">
<table border="0px"  bgcolor="#b6b6b6" cellpadding="0px" cellspacing="1px" width="741px">
<tr>
<td>
<div id="panel_buscador_muestratexto_contenedor" style="border:2px;groove;margin:0px 0px; padding:6px;">
<div id="panel_buscador_muestratexto_contenenido"><em><%=unescape(bb_code(Lineify(Cortar(registros(Cuerpo,z),400)),0))%></em></div></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br />
<%
End If
registros_mostrados = registros_mostrados + 1
Next 'z
' ==== Fin Imprime Registros ========
' ==== Imprime Paginación ========
if cant_paginas > 1 then
Call Paginacion
else
Call PocosReg
end if
' ==== Fin Imprime Paginación ========

END IF
End Sub 'MostrarReg
'=========================================================

Sub AvisoError ()
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="ltr">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-15">
<title>Error</title>
<style type="text/css">
.cab {color: #000; font: 16px verdana;}
.txt {color: #000; font: 11px tahoma, verdana;}
</style>
</head>
<body>
<table border="0px" cellpadding="0px" cellspacing="0px" width="400px">
<tr>
<td width="25%">
<img src="./pics/errorbd.gif" border="0px" width="80px" height="48px">
</td>
<td class="cab">
Error en Base de Datos
</td>
</tr>
<tr height="60px">
<td class="txt">
Hay un problema con la p&aacute;gina que est&aacute;s intentando ver y no se puede mostrar.
</td>
</tr>
</table>
<%
Response.Write("Documento ->> " & seccion)
Response.Write("<BR>Descripción   ->> " & Err.Description)
Response.End
'Libero memoria y cierro todo
Call LimpiarRS (rs)
Call LimpiarConexion
%>

</body>
</html>
<%
End Sub 'AvisoError
'====================================================================================
%>
Gracias
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 15/01/2008, 05:50
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 5 meses
Puntos: 126
Re: On Error Resume Next y Getrows

Ya logré que funcionara. El problema estaba, y aún no entiendo el por qué, en el Select. Quite el Select y los Sub. Quedo algo así

if idbusqueda ="1" then
Call ConectarForo
Call Registro (rs)
rs.PageSize = imprm
rs.CacheSize = imprm
....


Gracias u_goldma por tu tiempo e interes
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
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 22:04.