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

Que ocurre con remplace

Estas en el tema de Que ocurre con remplace en el foro de ASP Clásico en Foros del Web. Hola, tengo el siguiente problema, k ahora os explico y haber si me podeis ayudar. tengo una tabla donde miro si un campo esta relleno ...
  #1 (permalink)  
Antiguo 21/06/2004, 08:57
 
Fecha de Ingreso: octubre-2003
Mensajes: 364
Antigüedad: 20 años, 8 meses
Puntos: 1
Que ocurre con remplace

Hola,
tengo el siguiente problema, k ahora os explico y haber si me podeis ayudar.

tengo una tabla donde miro si un campo esta relleno si esta lleno lo completo con *, y lo que quiero es k si esta con * no me muestre una tabla y si lo esta que me muestre una tabla , y dentro de esa tabla que se rellene el campo, lo hago así

<%
if (rs2("BREVEHISTORIA")="*") then

else %>
<table width="645">
<TR bgcolor="#0A59A6">
<TD><font face="Arial, Helvetica, sans-serif" size="2"><b><font color="#FFFF00">Historia</font></b></font></TD>
</TR>
<TR>
<TD valign="top"><img src="<%=rs2("IMAGENEMPRESA")%>" width="285" height="209" align="left">
<%
histsalto=replace(rs2("BREVEHISTORIA"),chr(13),"<b r>")
%>
<span class="noticia2"><%=histsalto%></span>
</TD>
</TR>
</TABLE>
<% end ii %>

Si el campo esta relleno de *, me sale bien y no se muestra la tabla, pero el problema es si esta relleno el campo, que me da el siguiente error:

Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A005E)
Uso no válido de Null: 'replace'

como lo soluciono??????????????'
  #2 (permalink)  
Antiguo 21/06/2004, 09:26
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
verifica con un "if not isnull rs2("BREVEHISTORIA") Then" para evitar intentar inspeccionar un campo nulo.

saludos
  #3 (permalink)  
Antiguo 22/06/2004, 00:45
 
Fecha de Ingreso: octubre-2003
Mensajes: 364
Antigüedad: 20 años, 8 meses
Puntos: 1
Tampoco me funciona
  #4 (permalink)  
Antiguo 22/06/2004, 10:11
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Pasá el contenido del campo BREVEHISTORIA a una variable y operá sobre ella:

varBREVEHISTORIA = Trim(rs2("BREVEHISTORIA"))
if varBREVEHISTORIA <> "" Then...
  #5 (permalink)  
Antiguo 22/06/2004, 10:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 364
Antigüedad: 20 años, 8 meses
Puntos: 1
gracias era la solución que habia encontrado y que me funciona, pero ¿pq no se puede trabajar con el campo BREVEHISTORIA?

Gracias.
  #6 (permalink)  
Antiguo 22/06/2004, 10:32
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 se puede trabajar con el campo, el problema son los nulos. Como por default VBscript viene con option explicit off y además por filosofía que se conservó hasta antes del .NET, el casting es implícito.
BREVEHISTORIA = Trim(rs2("BREVEHISTORIA")) convierte el contenido del campo a un variant y si no contienen nada cambia el null a un string vacio automáticamente. Esto hace que el programador no se preocupe por estas conversiones fomentándole malas mañas de programación pero facilitándole la vida.

Solo hay que tener cuidado con los posibles valores que vengan en nuestras variables.

saludos
  #7 (permalink)  
Antiguo 22/06/2004, 10:56
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Yo no sé si será una mala maña o qué, pero si te aseguro que simplifica mucho las cosas. Recuerdo una vez que hice una aplicación en donde un usuario se daba de alta y podía o no escribir en un campo "memo" que luego tenía la opción de modificar (o escribir algo si antes no lo había hecho o eliminar su contenido). Ocurre que cuando se creaba el registro y el campo memo no fue escrito (estaba virgen, digamos), no me valía preguntar si su contenido era "un string vacío", pero si NULL. A la inversa, si lo había escrito y luego eliminado su contenido, no me valía preguntar por si su contenido era NULL pero si "un string vacío". Solución: Meter el contenido que tenga (nulo, "un string vacío" o con contenido) en una variable y operar con ella y... a la mierda :D
  #8 (permalink)  
Antiguo 22/06/2004, 13:40
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
Pues si dazuaga, pero ASP ya no tiene soporte, es decir ha llegado hasta donde tenía que llegar, y los nuevos lenguajes (o no tan nuevos) forzan al programador a tener sumo cuidado con respecto a todos los casting. Tan solo en JSP, que no es nada nuevo, si preguntas if(request.getParameter("Campo")=="") truena si es la primera vez que llamas a la página (a diferencia de ASP) ahí si tienes que preguntar si es nulo. Y por ese hice incapie en que facilitan la vida, pero cuando se han acostumbrado a esta facilidad y por lo que quieras y gustes se tiene que programar en otro lenguaje, tal vez más estructurado o peor, orientado a objetos, pues ahí se empieza a "parir chayotes" para quitarse esa costumbre.

Pero bueno, mientras exista vamos a utilizar y aprovechar estas "bondades" del lenguaje.

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 12:10.