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

Como puedo usar el mid en un campo memo???

Estas en el tema de Como puedo usar el mid en un campo memo??? en el foro de ASP Clásico en Foros del Web. hola a todos... tengo un problema...., resulta que quiero imprimir un campo de la base de datos y este es del tipo memo. con un ...
  #1 (permalink)  
Antiguo 26/06/2003, 20:47
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
Pregunta Como puedo usar el mid en un campo memo???

hola a todos...
tengo un problema...., resulta que quiero imprimir un campo de la base de datos y este es del tipo memo. con un campo tipo texto me sirve, pero con memo no... quiero utilizar mid para seleccionar el texto que deseo, tengo algo mas o menos asi.:


texto = RS.fields("noticia").value
x = len(texto)

if X > 500 then
response.write(mid(texto,1,497) + "...")
else
response.write(texto)
end if

otra cosa, que tampoco puedo usar replace porque me dice que es null, no c que hacer,he tratado y tratado y nada.

reitero, en un campo de texto me funciona perfectamente. en memo no.

gracias por todo

saruman
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #2 (permalink)  
Antiguo 26/06/2003, 21:44
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
Cita:
otra cosa, que tampoco puedo usar replace porque me dice que es null, no c que hacer,he tratado y tratado y nada.
Sobre lo primero, no le veo el problema... si es mayor a 500 (por lógica, no es null), entonces no entra en el if y no usa el mid...
Aunque te recomiendo, para probar la lógica y eliminar el mensaje de error, hacer algo así:


texto = RS.fields("noticia").value
x = len(texto)

if X > 500 then
response.write("mayor a 500")
else
response.write("menor de 500")
end if



Con respecto a lo que cité, me ocurrió algo similar hace mucho tiempo (tanto que ya no recuerdo cómo lo solucioné -aunque tampoco recuerdo cosas de la semana pasada .. -) pero era más o menos así la situación:

Al crear un registro si el usuario no especificaba nada para almacenar en el campo MEMO, luego al hacer un replace de dicho campo para reemplazar los saltos de lineas por <br>, el sistema me daba error (el mismo que a vos)... pero al meter datos en dicho campo y luego eliminarlo por completo (dejarlo vacío, null... como sea), el sistema no daba errores...

ah! el problema era que no pasaba de la comparación... digamos con pseudo-código:

Si campo_memo NO es nulo
reemplazar salto de línea por <br>
fin

el tema es que si el campo estaba vació desde un principio (nunca se le metió contenido desde que se generó el registro), no cumplía que fuera nulo... no lo tomaba y siempre intentaba hacer el replace... si el campo tenía contenido pero luego se eliminó, entonces SI se salteba el replace.

no recuerdo si lo solucioné haciendo una de estas dos cosas:

1- meterle un contenido que para el sistema signifique "nulo", al hacer el insert, en caso de no especificar contenido para ese campo (como, justamente, la palabra "nulo")

2- hacer varios chequeos:
If NOT IsNull(Rs("campo_memo")) OR Rs("campo_memo") = "" OR Len(Trim(Rs("campo_memo"))) < 1 then...


espero que sea de ayuda
saludos
  #3 (permalink)  
Antiguo 26/06/2003, 21:47
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
otra cosa que me olvidé de decir... también pasaba solamente con los campos memos... con los text no ocurría
__________________
...___...
  #4 (permalink)  
Antiguo 27/06/2003, 22:25
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
hola, y gracias...
en definitiva, este es el codigo, el secreto esta en jugar con las variables.. gracias

dim variable
dim X

variable = replace(RS.fields("noticia").value,chr(13),"<br>")
X = len(variable)

if X > 650 then
response.Write(mid(variable,1,647) + "...")
else
response.Write(variable)
end if
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
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 19:19.