> Faqs > Campos MEMO y condiciones lógicas en ASP

Campos MEMO y condiciones lógicas en ASP

Estoy teniendo problemas para hacer un script en ASP en el que se utiliza un campo MEMO de Access para evaluar una condición de un IF.

El tema es que esto ya lo había hecho en otras pá¡ginas y siempre había tenido buenos resultados. La Única diferencia que tiene este script es que utilizo dos campos MEMO, que traigo de una base de datos de access. Puede ser que se pegan los dos campos memo pero no tengo idea de si es este el problema.

El script que estoy utilizando es este:

<span class="codigo"> <%
Set conn1=Server.CreateObject("ADODB.CONNECTION")
Set RS1=Server.CreateObject("ADODB.RECORDSET")
conn1.open ("miDSN")
%>

<%
ID=Request.QueryString("orden")
SQL="Select * From Noticias Where Id = "&ID&";"
RS1.Open SQL,conn1
%>

<%response.write RS1("Cabecera")%><br>
<%Response.write RS1("Fecha")%><br>
<%if RS1("cuerpo") <> "" then%>
<%=RS1("cuerpo")%>
<%else%>
<%=RS1("resumen")%> <br>
<%end if%><%
RS1.Close
conn1.close
%> </span>

El campo MEMO es el que estoy evaluando en la condición del IF: RS1("cuerpo").

Respuestas

La verdad es que es un código bastante simple y lo veo bien. No obstante, puedes intentar convertir el campo memo antes de hacer el IF. Algo como esto:

<span class="codigo"> campoMEMO = CSTR(RS1("Cuerpo")) </span>

La función CSTR convierte lo que recibe por parámetro en un string. Ese string no deberí­a darte problemas para evaluarlo en una condición de un IF.

Por cierto CSTR pilla en el string hasta 2.000.000.000 caracteres.

Este código está probado y funciona perfectamente:

<span class="codigo"> <%
ID=Request.QueryString("orden")
SQL="Select * From Noticias Where Id = "&ID&";"
RS1.Open SQL,conn1
campoMEMO = CSTR(RS1("Cuerpo"))

if campoMEMO <> "" then
response.write campoMEMO
else
response.write RS1("resumen")
end if

RS1.Close
conn1.close
%> </span>

Francisco Javier Sánchez