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

Necesito una explicacion lógica

Estas en el tema de Necesito una explicacion lógica en el foro de ASP Clásico en Foros del Web. Bien me ocurre lo siguiente, las conexiones estan bien y tengo realizada la siguiente seleccion: SQL1 = "SELECT * FROM 02DESTACADO WHERE ID=2" Set rs ...
  #1 (permalink)  
Antiguo 30/05/2002, 03:21
 
Fecha de Ingreso: agosto-2001
Mensajes: 336
Antigüedad: 22 años, 9 meses
Puntos: 0
Necesito una explicacion lógica

Bien me ocurre lo siguiente, las conexiones estan bien y tengo realizada la siguiente seleccion:

SQL1 = "SELECT * FROM 02DESTACADO WHERE ID=2"
Set rs = conexion.Execute(SQL1)

Bien en el * esta incluido un campo que se llama Texto2 que es de tipo memo.Ahora bien, tengo una funcion para que me muestre los retornos de carro bien en el html,es esta:

Código:
'*********************************************************************'
	'	Función FormateaSalida_de_datos( texto ) by : Mecenias
	'*********************************************************************'
	' FormateaSalida_de_datos recibe un texto y los formatea para que
	' se muestren los retornos de carro tal y como se guardaron
	'---------------------------------------------------------------------
	Function FormateaSalida_de_datos ( texto )

       FormateaSalida_de_datos=replace(texto, vbcrlf,"<BR>" & vbcrlf)  
			
	End Function 'FormateaSalida_de_datos
	'---------------------------------------------------------------------
Bien pues hasta ahora siempre estaba utilizando este codigo:

Código:
 
<%
''Nota: rs siempre existe, por eso no compruebo si es rs.eof o rs.bof

 If (rs("texto2"<>"") then		
  variable=FormateaSalida_de_datos(rs("texto2"))	
		response.write(variable)
		else
		response.write(" ")
	  	end if	  
	  %>
Y resulta que me da el siguiente error:

Error Type:
Microsoft VBScript runtime (0x800A005E)
Invalid use of Null: 'replace'
/administrador2002/secciones/destacado2_confir.asp, line 26

La linea 26 es de la funcion: FormateaSalida_de_datos=replace(texto, vbcrlf,"<BR>" & vbcrlf)

tambien me da error si lo pongo asi:

if (rs("texto2")<>"") then
variable=rs.Fields.Item("texto2").Value
variable=FormateaSalida_de_datos(variable)
response.write(variable)
else
response.write(" ")
end if

(Continua --->)

  #2 (permalink)  
Antiguo 30/05/2002, 03:30
 
Fecha de Ingreso: agosto-2001
Mensajes: 336
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Necesito una explicacion lógica

(continuacion)

Sin embargo con este codigo no da error:
<%
variable=rs.Fields.Item("texto2").Value
if (variable<>"") then
variable=FormateaSalida_de_datos(variable)
response.write(variable)
else
response.write(" ")
end if
%>

Si con esto se me soluciona el problema, pero quiero saber cual es la causa para que no me vuelva a ocurrir (ya he invertido suficiente tiempo para la tonteria esta)

Supongo que sera porque texto2 es de tipo memo en este caso y no puedo utilizar el codigo que utilizaba siempre para los de tipo texto

Otra cosa si pongo esto directamente sin comprobar si contine algo funciona:

'Nota:rs("texto2") si tiene algo

<%=FormateaSalida_de_datos(rs("texto2&quot ;))%>

pero si no contiene evidentemente da el famoso error,por eso necesito comprobar antes si contiene algo o no.

¿Alguien ha estado en mi situacion? :roto:
¿Alguna idea de porque?

Supongo que sera por algo del tipo memo,pero alguien puede decirme el que.

Gracias a Todos :( ,SNIFF

  #3 (permalink)  
Antiguo 30/05/2002, 07:59
Avatar de buliwyf  
Fecha de Ingreso: diciembre-2001
Ubicación: Caracas
Mensajes: 221
Antigüedad: 22 años, 5 meses
Puntos: 1
Re: Necesito una explicacion lógica

mira, yo creo que es porque _algun_ registro, simplemente no contiene "<br>" y por eso el valor de replace(cualquiercosa) es null... tu instruccion esta bien declarada, pero que te parece si la encierras en un if como este:

<%
If Isobject(tu_funcion_de_replace) then
tu_funcion
else
response.write " "
end if
%>


Saludos

  #4 (permalink)  
Antiguo 30/05/2002, 08:58
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
Re: Necesito una explicacion lógica

el famoso tipo memo a mi tambien me ha dado sus buenos dolores de cabeza...las razones...simplemente el campo memo la unica diferencia es que aguabnta mas de 255 caracteres...pero la practica dicta mucho de eso. Muchos piensan que al fin y al cabo es un campo tipo texto mas grande pero la porqueria tiene mas mañnas para mostrarse.

Explicación no tengo pero algo aprendi...cada vez que quiera usar el valor de un campo memo o mostrar esta info en la pagina lo 1ro que hago es sacarlo del recordset y mandarselo a una variable y ahi recien ocupo ese valor pra compraciones o despliegues.

Código:
  
rs("texto2")<>"" 'esta porqueria me deja la &%"$#!  :'( 


variable=rs("texto2")
variable<>""  'aqui todo good  :ojotes:
no te amargues la vida y usa una variable antes de usar el recordset...

:-p quien tiene la respuesta!!!!!
  #5 (permalink)  
Antiguo 31/05/2002, 02:53
 
Fecha de Ingreso: agosto-2001
Mensajes: 336
Antigüedad: 22 años, 9 meses
Puntos: 0
Re: Necesito una explicacion lógica

Gracias a ambos,
bakanzipp creo que utilizare lo que tu dices y los campos memo se los pasare a una variable para quitarme de problemas :cantar: .

buliwyl no habia pensado que no existiera ningun crlf que se pudiera sustituir por "<br>",me documentare sobre isobject y vere que se puede hacer :P.


Gracias y Saludos 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 23:13.